in reply to Re: parse xml file using libxml - and Text:Iconv
in thread parse xml file using libxml - and Text:Iconv

OK understand other comments - I am new to the encoding/decoding world. I tried just using decode, but it still did not work. Here is a sample of the xml - I have NO control over how this stuff is output - my client gives me the xml and I need to parse it. My errors are on the "^Ls3weNp2Y" input - when I initially try to decode it:
$confile = decode("iso-8859-1", $file); my $parser = XML::LibXML->new(); my $doc = $parser->parse_file($confile);
Here is xml file...
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?> <?xml-stylesheet type="text/xsl" href="notes.xsl"?> <UPDATE> <COMMANDPARMS> </COMMANDPARMS> <TIMING> <CUSTID> 192343-13</CUSTID> <STARTDATE>20090414</STARTDATE><STARTTIME>10:36:46</STARTTIME> </TIMING> <TMMR><DATE>20090414</DATE><TIME>18:40:39</TIME><CEO_ID>12943-56A</CEO +_ID><CEO_ID_SORTED>217.064.098.066</CEO_ID_SORTED><MANUID>80</MANUID> +<STATUS>Open</STATUS><NOTES><![CDATA[Last checked on 14Aug ]]></NOTES><SERVICE_INFO><![CDATA[:^Ls3weNp2Y ]]></SERVICE_INFO><CONTENT1><![CDATA[]]></CONTENT1><CONTENT2><![CDATA[ +]]></CONTENT2></TMMR>

Replies are listed 'Best First'.
Re^3: parse xml file using libxml - and Text:Iconv
by Jenda (Abbot) on Jun 02, 2009 at 17:12 UTC

    If I add the missing </UPDATE> at the end, the XML parses fine:

    use XML::Simple qw(XMLin); $data = XMLin(\*DATA); use Data::Dumper; print Dumper($data); __DATA__ <?xml version="1.0" encoding="ISO-8859-1" standalone="yes" ?> <?xml-stylesheet type="text/xsl" href="notes.xsl"?> <UPDATE> <COMMANDPARMS> </COMMANDPARMS> <TIMING> <CUSTID> 192343-13</CUSTID> <STARTDATE>20090414</STARTDATE><STARTTIME>10:36:46</STARTTIME> </TIMING> <TMMR><DATE>20090414</DATE><TIME>18:40:39</TIME><CEO_ID>12943-56A</CEO +_ID><CEO_ID_SORTED>217.064.098.066</CEO_ID_SORTED><MANUID>80</MANUID> +<STATUS>Open</STATUS><NOTES><![CDATA[Last checked on 14Aug ]]></NOTES><SERVICE_INFO><![CDATA[:^Ls3weNp2Y ]]></SERVICE_INFO><CONTENT1><![CDATA[]]></CONTENT1><CONTENT2><![CDATA[ +]]></CONTENT2></TMMR> </UPDATE>
    Stop trying to encode, decode or whatever! And make sure you do not pass string containing the XML to a method that expects the path to the file containing the XML or vice versa.

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