Windows NT KAMIDAKI 10.0 build 19045 (Windows 10) AMD64
Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.3.9
Server IP : 192.168.3.16 & Your IP : 216.73.216.52
Domains :
Cant Read [ /etc/named.conf ]
User : SISTEMA
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
C: /
xampp /
perl /
vendor /
lib /
XML /
LibXML /
Delete
Unzip
Name
Size
Permission
Date
Action
SAX
[ DIR ]
drwxrwxrwx
2024-07-26 17:38
Attr.pod
4.02
KB
-rw-rw-rw-
2020-09-15 12:00
AttributeHash.pm
4.49
KB
-rw-rw-rw-
2020-09-15 12:00
Boolean.pm
1.56
KB
-rw-rw-rw-
2020-09-15 12:00
CDATASection.pod
1.28
KB
-rw-rw-rw-
2020-09-15 12:00
Comment.pod
1.36
KB
-rw-rw-rw-
2020-09-15 12:00
Common.pm
8.22
KB
-rw-rw-rw-
2020-09-15 12:00
Common.pod
3.59
KB
-rw-rw-rw-
2020-09-15 12:00
DOM.pod
6.23
KB
-rw-rw-rw-
2020-09-15 12:00
Devel.pm
4.91
KB
-rw-rw-rw-
2020-09-15 12:00
Document.pod
20.91
KB
-rw-rw-rw-
2020-09-15 12:00
DocumentFragment.pod
819
B
-rw-rw-rw-
2020-09-15 12:00
Dtd.pod
1.99
KB
-rw-rw-rw-
2020-09-15 12:00
Element.pod
13.48
KB
-rw-rw-rw-
2020-09-15 12:00
ErrNo.pm
27.83
KB
-rw-rw-rw-
2020-09-15 12:00
ErrNo.pod
591
B
-rw-rw-rw-
2020-09-15 12:00
Error.pm
8.47
KB
-rw-rw-rw-
2020-09-15 12:00
Error.pod
5.98
KB
-rw-rw-rw-
2020-09-15 12:00
InputCallback.pod
9.59
KB
-rw-rw-rw-
2020-09-15 12:00
Literal.pm
2.04
KB
-rw-rw-rw-
2020-09-15 12:00
Namespace.pod
3.28
KB
-rw-rw-rw-
2020-09-15 12:00
Node.pod
25.39
KB
-rw-rw-rw-
2020-09-15 12:00
NodeList.pm
7.31
KB
-rw-rw-rw-
2020-09-15 12:00
Number.pm
1.87
KB
-rw-rw-rw-
2020-09-15 12:00
PI.pod
2.22
KB
-rw-rw-rw-
2020-09-15 12:00
Parser.pod
27.79
KB
-rw-rw-rw-
2020-09-15 12:00
Pattern.pod
2.91
KB
-rw-rw-rw-
2020-09-15 12:00
Reader.pm
5.75
KB
-rw-rw-rw-
2020-09-15 12:00
Reader.pod
17.6
KB
-rw-rw-rw-
2020-09-15 12:00
RegExp.pod
1.54
KB
-rw-rw-rw-
2020-09-15 12:00
RelaxNG.pod
2.34
KB
-rw-rw-rw-
2020-09-15 12:00
SAX.pm
3.45
KB
-rw-rw-rw-
2020-09-15 12:00
SAX.pod
1.76
KB
-rw-rw-rw-
2020-09-15 12:00
Schema.pod
2.19
KB
-rw-rw-rw-
2020-09-15 12:00
Text.pod
5.47
KB
-rw-rw-rw-
2020-09-15 12:00
XPathContext.pm
3.15
KB
-rw-rw-rw-
2020-09-15 12:00
XPathContext.pod
11.49
KB
-rw-rw-rw-
2020-09-15 12:00
XPathExpression.pod
1.64
KB
-rw-rw-rw-
2020-09-15 12:00
Save
Rename
package XML::LibXML::AttributeHash; use strict; use warnings; use Scalar::Util qw//; use Tie::Hash; our @ISA = qw/Tie::Hash/; use vars qw($VERSION); $VERSION = "2.0206"; # VERSION TEMPLATE: DO NOT CHANGE BEGIN { *__HAS_WEAKEN = defined(&Scalar::Util::weaken) ? sub () { 1 } : sub () { 0 }; }; sub element { return $_[0][0]; } sub from_clark { my ($self, $str) = @_; if ($str =~ m! \{ (.+) \} (.+) !x) { return ($1, $2); } return (undef, $str); } sub to_clark { my ($self, $ns, $local) = @_; defined $ns ? "{$ns}$local" : $local; } sub all_keys { my ($self, @keys) = @_; my $elem = $self->element; foreach my $attr (defined($elem) ? $elem->attributes : ()) { if (! $attr->isa('XML::LibXML::Namespace')) { push @keys, $self->to_clark($attr->namespaceURI, $attr->localname); } } return sort @keys; } sub TIEHASH { my ($class, $element, %args) = @_; my $self = bless [$element, undef, \%args], $class; if (__HAS_WEAKEN and $args{weaken}) { Scalar::Util::weaken( $self->[0] ); } return $self; } sub STORE { my ($self, $key, $value) = @_; my ($key_ns, $key_local) = $self->from_clark($key); if (defined $key_ns) { return $self->element->setAttributeNS($key_ns, "xxx:$key_local", "$value"); } else { return $self->element->setAttribute($key_local, "$value"); } } sub FETCH { my ($self, $key) = @_; my ($key_ns, $key_local) = $self->from_clark($key); if (defined $key_ns) { return $self->element->getAttributeNS($key_ns, "$key_local"); } else { return $self->element->getAttribute($key_local); } } sub EXISTS { my ($self, $key) = @_; my ($key_ns, $key_local) = $self->from_clark($key); if (defined $key_ns) { return $self->element->hasAttributeNS($key_ns, "$key_local"); } else { return $self->element->hasAttribute($key_local); } } sub DELETE { my ($self, $key) = @_; my ($key_ns, $key_local) = $self->from_clark($key); if (defined $key_ns) { return $self->element->removeAttributeNS($key_ns, "$key_local"); } else { return $self->element->removeAttribute($key_local); } } sub FIRSTKEY { my ($self) = @_; my @keys = $self->all_keys; $self->[1] = \@keys; if (wantarray) { return ($keys[0], $self->FETCH($keys[0])); } $keys[0]; } sub NEXTKEY { my ($self, $lastkey) = @_; my @keys = defined $self->[1] ? @{ $self->[1] } : $self->all_keys; my $found; foreach my $k (@keys) { if ($k gt $lastkey) { $found = $k and last; } } if (!defined $found) { $self->[1] = undef; return; } if (wantarray) { return ($found, $self->FETCH($found)); } return $found; } sub SCALAR { my ($self) = @_; return $self->element; } sub CLEAR { my ($self) = @_; foreach my $k ($self->all_keys) { $self->DELETE($k); } return $self; } __PACKAGE__ __END__ =head1 NAME XML::LibXML::AttributeHash - tie an XML::LibXML::Element to a hash to access its attributes =head1 SYNOPSIS tie my %hash, 'XML::LibXML::AttributeHash', $element; $hash{'href'} = 'http://example.com/'; print $element->getAttribute('href') . "\n"; =head1 DESCRIPTION This class allows an element's attributes to be accessed as if they were a plain old Perl hash. Attribute names become hash keys. Namespaced attributes are keyed using Clark notation. my $XLINK = 'http://www.w3.org/1999/xlink'; tie my %hash, 'XML::LibXML::AttributeHash', $element; $hash{"{$XLINK}href"} = 'http://localhost/'; print $element->getAttributeNS($XLINK, 'href') . "\n"; There is rarely any need to use XML::LibXML::AttributeHash directly. In general, it is possible to take advantage of XML::LibXML::Element's overloading. The example in the SYNOPSIS could have been written: $element->{'href'} = 'http://example.com/'; print $element->getAttribute('href') . "\n"; The tie interface allows the passing of additional arguments to XML::LibXML::AttributeHash: tie my %hash, 'XML::LibXML::AttributeHash', $element, %args; Currently only one argument is supported, the boolean "weaken" which (if true) indicates that the tied object's reference to the element should be a weak reference. This is used by XML::LibXML::Element's overloading. The "weaken" argument is ignored if you don't have a working Scalar::Util::weaken.