XML-GenericJSON
view release on metacpan or search on metacpan
lib/XML/GenericJSON.pm view on Meta::CPAN
The best way to report bugs is via the Xcruciate bugzilla site (F<http://www.xcruciate.co.uk/bugzilla>).
=head1 PREVIOUS VERSIONS
=cut
my @types=(0,
'element', #1
'attribute', #2
'text', #3
'cdata', #4
'entity_ref', #5
'entity_node', #6
'pi', #7
'comment', #8
'document', #9
'document_type', #10
'document_frag', #11
'notation', #12
'html_document', #13
'dtd', #14
lib/XML/GenericJSON.pm view on Meta::CPAN
=cut
sub dom2perlish {
my $xml_node = shift;
my $strip_whitespace = 1;
$strip_whitespace = shift if defined $_[0];
my $perlish_node = {};
if ($xml_node->nodeType == 3) {#text - just store the scalar
return $xml_node->data;
}elsif (defined $simple_types->{$xml_node->nodeType}) {#cdata,pi,comment - store type plus data
$perlish_node->{type} = $types[$xml_node->nodeType];
$perlish_node->{data} = $xml_node->nodeValue;
return $perlish_node;
} else {#Probably an element, but it should work regardless
$perlish_node->{type} = $types[$xml_node->nodeType];
$perlish_node->{namespaces} = list_namespaces($xml_node) if $xml_node->getNamespaces;
$perlish_node->{prefix} = $xml_node->prefix if $xml_node->prefix;
$perlish_node->{name} = $xml_node->localname;
$perlish_node->{attributes} = hash_attributes($xml_node) if $xml_node->hasAttributes;
$perlish_node->{children} = list_children($xml_node,$strip_whitespace) if $xml_node->hasChildNodes;
( run in 0.618 second using v1.01-cache-2.11-cpan-454fe037f31 )