Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: XML to HashRef and then to JSON

by Jenda (Abbot)
on Mar 17, 2016 at 17:30 UTC ( [id://1158131]=note: print w/replies, xml ) Need Help??


in reply to XML to HashRef and then to JSON

You can use XML::Rules and specify what tags do you want to keep as text. Something like this:

use strict; use XML::Rules; use Data::Dumper; my $parser = XML::Rules->new( stripspaces => 2, rules => { '_default' => 'as array', 'Publisher' => 'pass', 'Emphasis' => sub { my ($tag,$attr,$parser) = @_[0,1,4]; return $parser->ToXML($tag, $attr); } } ); print Dumper($parser->parse(\*DATA)); __DATA__ <Publisher> <UniqueDOI>978-3-642-123456</UniqueDOI> <ChapterInfo ChapterType="OriginalPaper"> <Title Language="En">Is Light Blue (<Emphasis Type="Italic">azzurr +o</Emphasis> o bianco) Color Name Universal in the Italian Language?< +/Title> </ChapterInfo> </Publisher>

You can specify a comma separated list of tags in place of the 'Emphasis' and if some other tags are not allowed to repeat, you may include 'their,names' => 'as is' in the rules hash.

Jenda
Enoch was right!
Enjoy the last years of Rome.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1158131]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others examining the Monastery: (6)
As of 2024-04-19 09:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found