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");
In reply to Validating XML by networker2149
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |