Re: XML::Simple does not pick up multiple entries into array



In article
<98e232e6-a7d8-4e13-b456-9fc0052b2ba0@xxxxxxxxxxxxxxxxxxxxxxxxxxxx>,
<"jck000@xxxxxxxxx"> wrote:

I'm parsing data and one of there are multiple EMBEDDED_FILE tags.
I've set it to put these into an array as well as a hash. However,
only one entry appears

$ref = XMLin($xml_src,
ForceArray => [ 'EMBEDDED_FILE' ],
SuppressEmpty => '');


This is the result. I can view the source and there are multiple
EMBEDDED_FILE tags. So, <EMBEDDED_FILE _type='HTML'>
<DOCUMENT>
<![CDATA[<!DOCTYPEML....>
</DOCUMENT>
</EMBEDDED_FILE>
<EMBEDDED_FILE _type='PDF' EncodingType='Base64'>
<DOCUMENT>
<![CDATA[JVBERi0xLj........>
</DOCUMENT>
</EMBEDDED_FILE>

This is the result:

'EMBEDDED_FILE' => [
{
'DOCUMENT' => '',
'_Type' => 'HTML'
}
],

When there is a single entry usually PDF, I can decode it properly.
Is there an option to force it to correctly interpret the two entries?

Thanks
Jack

I am no XML expert, but well-formed XML documents should have a single,
all-enclosing tag at the beginning and end, and yours doesn't. You can
try adding them:

$xml_src = "<top>$xml_src</top>";

If you can't do that, you can try other XML parsers that might work
differently from XML::Simple, but you really should be giving
well-formed input to any XML Parser.

--
Jim Gibson

Posted Via Usenet.com Premium Usenet Newsgroup Services
----------------------------------------------------------
http://www.usenet.com
.