networker2149 has asked for the wisdom of the Perl Monks concerning the following question:
I got an error recently after modifying a script I wrote to parse XML from juniper router commands. The change was to run a different show command that produces more information. The problem is that routers are apparently bad at XML and this caused the mal-formatted XML I'm used to to turn into invalid XML. Will post more code if required but It worked pretty well before the invalid characters. I put in a regex to remove the invalid character, but I was curious if there was a way to do this automatically. Or at least another module that provides better error handling. Here's the error: reference to invalid character number at line 1, column 1373, byte 1373 at /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/XML/Parser.pm line 187 Any advice would be helpful. Some clue as to how to zero in on line 1, column 1373, byte 1373 of a file would be helpful as well. Thanks
use XML::Simple; my $xml = new XML::Simple (KeyAttr=>[]); my $data = $xml->XMLin("cmd-out\/$hostname.xml");
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Validating XML
by ikegami (Patriarch) on Dec 03, 2011 at 22:05 UTC | |
|
Re: Validating XML
by JavaFan (Canon) on Dec 03, 2011 at 23:05 UTC | |
|
Re: Validating XML
by vinian (Beadle) on Dec 04, 2011 at 06:47 UTC | |
|
Re: Validating XML
by grantm (Parson) on Dec 04, 2011 at 23:25 UTC |