gri6507 has asked for the wisdom of the Perl Monks concerning the following question:
Let's say that I have an XML file similar to
When I run my simple test program<a> <b type="1"/> <b type="2"/> <c/> <b type="3"/> </a>
I get the expected output, which tells me that 'a' is an array of hashes with 'b' and 'c' as the two elements. The problem is that there is no way to identify the order of <b> and <c> tags simply by looking at the $info structure. In other words, I can't tell that <b type="2"/> is the direct predecessor of the <c> tag.use warnings; use strict; use XML::Simple qw(:strict); use XML::SAX::Expat; use Data::Dumper; my $xmlParser = XML::Simple->new( ForceArray => 1, # force the contents of all elements to be an + array KeepRoot => 1, # keep the root tag SuppressEmpty => '', # represent empty elements as empty strings KeyAttr => {}, # do not fold any tags ); my $info = $xmlParser->XMLin('<a><b type="1"/><b type="2"/><c/><b type +="3"/></a>') || die "Problem: $!\n"; print Dumper($info);
Is there some setting in XML::Simple which would give me $info in perhaps an array or arrays or some other structure so that I could see the relative order of the peer tags?
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: XML::Simple usage question
by tobyink (Canon) on Jul 13, 2012 at 21:11 UTC | |
by gri6507 (Deacon) on Jul 13, 2012 at 21:26 UTC | |
|
Re: XML::Simple usage question
by dasgar (Priest) on Jul 14, 2012 at 02:52 UTC | |
|
Re: XML::Simple usage question (steriods)
by Anonymous Monk on Jul 13, 2012 at 23:03 UTC |