Linux server.nvwebsoft.co.in 3.10.0-1160.114.2.el7.x86_64 #1 SMP Wed Mar 20 15:54:52 UTC 2024 x86_64
Apache
: 162.240.12.249 | : 18.119.135.67
202 Domain
8.1.31
nbspublicschool
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
usr /
lib64 /
perl5 /
vendor_perl /
XML /
LibXML /
[ HOME SHELL ]
Name
Size
Permission
Action
SAX
[ DIR ]
drwxr-xr-x
Attr.pod
3.9
KB
-rw-r--r--
AttributeHash.pm
4.49
KB
-rw-r--r--
Boolean.pm
1.55
KB
-rw-r--r--
CDATASection.pod
1.16
KB
-rw-r--r--
Comment.pod
1.23
KB
-rw-r--r--
Common.pm
8.21
KB
-rw-r--r--
Common.pod
3.46
KB
-rw-r--r--
DOM.pod
6.09
KB
-rw-r--r--
Devel.pm
4.91
KB
-rw-r--r--
Document.pod
20.76
KB
-rw-r--r--
DocumentFragment.pod
691
B
-rw-r--r--
Dtd.pod
1.87
KB
-rw-r--r--
Element.pod
13.35
KB
-rw-r--r--
ErrNo.pm
27.82
KB
-rw-r--r--
ErrNo.pod
442
B
-rw-r--r--
Error.pm
8.47
KB
-rw-r--r--
Error.pod
5.85
KB
-rw-r--r--
InputCallback.pod
9.46
KB
-rw-r--r--
Literal.pm
2.03
KB
-rw-r--r--
Namespace.pod
2.81
KB
-rw-r--r--
Node.pod
24.42
KB
-rw-r--r--
NodeList.pm
6.64
KB
-rw-r--r--
Number.pm
1.86
KB
-rw-r--r--
PI.pod
2.09
KB
-rw-r--r--
Parser.pod
27.37
KB
-rw-r--r--
Pattern.pod
2.77
KB
-rw-r--r--
Reader.pm
5.69
KB
-rw-r--r--
Reader.pod
17.43
KB
-rw-r--r--
RegExp.pod
1.41
KB
-rw-r--r--
RelaxNG.pod
1.94
KB
-rw-r--r--
SAX.pm
2.94
KB
-rw-r--r--
SAX.pod
1.64
KB
-rw-r--r--
Schema.pod
1.83
KB
-rw-r--r--
Text.pod
5.33
KB
-rw-r--r--
XPathContext.pm
3.13
KB
-rw-r--r--
XPathContext.pod
11.35
KB
-rw-r--r--
XPathExpression.pod
1.51
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : AttributeHash.pm
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.0018"; # 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.
Close