Current Path: > > usr > local > lib64 > perl5 > XML > LibXML >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
SAX | Directory | - | - | |
Attr.pod | File | 4121 bytes | January 24 2024 15:13:41. | |
AttributeHash.pm | File | 4593 bytes | January 24 2024 15:03:50. | |
Boolean.pm | File | 1601 bytes | January 24 2024 15:03:50. | |
CDATASection.pod | File | 1315 bytes | January 24 2024 15:13:41. | |
Comment.pod | File | 1396 bytes | January 24 2024 15:13:41. | |
Common.pm | File | 8399 bytes | January 24 2024 15:03:50. | |
Common.pod | File | 3672 bytes | January 24 2024 15:13:41. | |
DOM.pod | File | 6379 bytes | January 24 2024 15:13:41. | |
Devel.pm | File | 5028 bytes | January 24 2024 15:03:50. | |
Document.pod | File | 21593 bytes | January 24 2024 15:13:41. | |
DocumentFragment.pod | File | 819 bytes | January 24 2024 15:13:41. | |
Dtd.pod | File | 2039 bytes | January 24 2024 15:13:41. | |
Element.pod | File | 13806 bytes | January 24 2024 15:13:41. | |
ErrNo.pm | File | 28499 bytes | January 24 2024 15:03:50. | |
ErrNo.pod | File | 591 bytes | January 24 2024 15:13:41. | |
Error.pm | File | 8653 bytes | January 24 2024 15:03:50. | |
Error.pod | File | 6121 bytes | January 24 2024 15:13:41. | |
InputCallback.pod | File | 9822 bytes | January 24 2024 15:13:41. | |
Literal.pm | File | 2094 bytes | January 24 2024 15:03:50. | |
Namespace.pod | File | 3362 bytes | January 24 2024 15:13:41. | |
Node.pod | File | 26282 bytes | January 24 2024 15:13:41. | |
NodeList.pm | File | 7489 bytes | January 24 2024 15:03:50. | |
Number.pm | File | 1916 bytes | January 24 2024 15:03:50. | |
PI.pod | File | 2271 bytes | January 24 2024 15:13:41. | |
Parser.pod | File | 28453 bytes | January 24 2024 15:13:41. | |
Pattern.pod | File | 2975 bytes | January 24 2024 15:13:41. | |
Reader.pm | File | 5887 bytes | January 24 2024 15:03:50. | |
Reader.pod | File | 18023 bytes | January 24 2024 15:13:41. | |
RegExp.pod | File | 1574 bytes | January 24 2024 15:13:41. | |
RelaxNG.pod | File | 2398 bytes | January 24 2024 15:13:41. | |
SAX.pm | File | 3532 bytes | January 24 2024 15:03:50. | |
SAX.pod | File | 1804 bytes | January 24 2024 15:13:41. | |
Schema.pod | File | 2247 bytes | January 24 2024 15:13:41. | |
Text.pod | File | 5601 bytes | January 24 2024 15:13:41. | |
XPathContext.pm | File | 3223 bytes | January 24 2024 15:03:50. | |
XPathContext.pod | File | 11767 bytes | January 24 2024 15:13:41. | |
XPathExpression.pod | File | 1678 bytes | January 24 2024 15:13:41. |
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.0210"; # 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.
SILENT KILLER Tool