Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: XML::Simple "transforming data"

by Thelonious (Scribe)
on Mar 21, 2005 at 21:50 UTC ( #441322=note: print w/replies, xml ) Need Help??

in reply to XML::Simple "transforming data"

XML::Simple's interface is pretty odd in that it outputs something different than it takes in by default. (Maybe it could be even a little more simple - and more Perlish...?) But there's an option:

ForceArray => 1 *# in - important*
    This option should be set to '1' to force nested elements to be
    represented as arrays even when there is only one.
...that you can use like so:

use XML::Simple; my $xml = XMLin(join('',<DATA>),ForceArray => 1); print XMLout($xml); __END__ <meta fpi="1234567890"> <isbn>1-234-56789-0</isbn> <edition>First</edition> <authorgroup> <author> <firstname>John</firstname> <surname>Smith</surname> <authorblurb url=""/> </author> </authorgroup> <pagenums>384</pagenums> <pubdate>October 2001</pubdate> <subjectset> <subject>some.lame.subject</subject> <subject>another.lame.subject</subject> </subjectset> <publisher> <publishername>Publisher Inc.</publishername> <imprintname>Publisher Inc.</imprintname> </publisher> </meta>

...I think that it outputs something very similar to what you're looking for...


Replies are listed 'Best First'.
Re^2: XML::Simple "transforming data"
by Cody Pendant (Prior) on Mar 22, 2005 at 06:01 UTC
    I think it'll do exactly what he wants if you add "RootName=>'meta'" to the call to XMLOut()

    =~y~b-v~a-z~s; print

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (5)
As of 2023-02-07 18:20 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (40 votes). Check out past polls.