XML-Trivial
view release on metacpan or search on metacpan
lib/XML/Trivial.pm view on Meta::CPAN
}
$s->{ehns} = \%ehns;
return $self;
}
sub TIEHASH {
my ($class, $a, $nsstack) = @_;
#$a is arrayref like [name, atts, type1, data1, type2, data2, ...]
my @ea; my %eh;#elements
my @ta; #texts
my @ca; #cdatas
my @pa; my %ph;#process instructions
my @na; #notes
my $firstkey;
my $lastkey;
my %next;
my %nh; #hash of namespaces in scope
foreach (@$nsstack) {
while (my ($name, $value) = each %$_) {
$nh{$name} = $value;
}
lib/XML/Trivial.pm view on Meta::CPAN
return tied(%$self)->{ea}[$index];
}
sub ta { #text array (ca included)
my ($self, $index) = @_;
(1 == @_ or not defined $index)
and return wantarray ? @{tied(%$self)->{ta}} : tied(%$self)->{ta};
return tied(%$self)->{ta}[$index];
}
sub ca { #cdata array
my ($self, $index) = @_;
(1 == @_ or not defined $index)
and return wantarray ? @{tied(%$self)->{ca}} : tied(%$self)->{ca};
return tied(%$self)->{ca}[$index];
}
sub ts { #text serialized
my ($self) = @_;
return join '', @{tied(%$self)->{ta}};
}
lib/XML/Trivial.pm view on Meta::CPAN
=item ta($index)
B<t>ext B<a>rray. Returns $index'th textnode under element, including CDATA sections.
print "second text under <text>: ".$$xml{0}{sections}{text}->ta(1)."\n";
=item ca()
B<c>data B<a>rray(ref). Returns array(ref) of CDATA sections.
print "all cdatas under <text>:\n";
foreach ($$xml{0}{sections}{text}->ca) {
print " cdata: ".$_."\n";
}
=item ca($index)
B<c>data B<a>rray. Returns $index'th CDATA section under element.
print "first cdata section under <text>: ".$$xml{0}{sections}{text}->ca(0)."\n";
=item ts()
B<t>ext B<s>erialized. Returns all textnodes, serialized into scalar string.
print "whole serialized text under <text>:".$$xml{0}{sections}{text}->ts."\n";
=item pa()
B<p>rocessing instruction B<a>rray(ref). Returns array(ref) of all processing instructions if called without arguments. Items of returned array are arrayrefs of two items, target and body.
( run in 0.236 second using v1.01-cache-2.11-cpan-ec4f86ec37b )