could not find ParserDetails.ini in /reports/ie/lib/cpan/XML/SAX
at /reports/ie/lib/cpan/XML/SAX.pm line 212
XML::SAX::do_warn('XML::SAX', 'could not find ParserDetails.ini in /reports/ie/lib/cpan/XML/...') called at /reports/ie/lib/cpan/XML/SAX.pm line 62
XML::SAX::load_parsers('XML::SAX') called at /reports/ie/lib/cpan/XML/SAX.pm line 115
XML::SAX::parsers('XML::SAX') called at /reports/ie/lib/cpan/XML/SAX/ParserFactory.pm line 18
XML::SAX::ParserFactory::new('XML::SAX::ParserFactory') called at /reports/ie/lib/cpan/XML/SAX/ParserFactory.pm line 26
XML::SAX::ParserFactory::parser('XML::SAX::ParserFactory', 'Handler', 'XML::Simple=HASH(0x162c6e30)') called at /reports/ie/lib/cpan/XML/Simple.pm line 358
XML::Simple::build_tree('XML::Simple=HASH(0x162c6e30)', 'changelog.xml', 'undef') called at /reports/ie/lib/cpan/XML/Simple.pm line 308
XML::Simple::build_simple_tree('XML::Simple=HASH(0x162c6e30)', 'changelog.xml', 'undef') called at /reports/ie/lib/cpan/XML/Simple.pm line 227
XML::Simple::parse_file('XML::Simple=HASH(0x162c6e30)', 'changelog.xml') called at /reports/ie/lib/cpan/XML/Simple.pm line 195
XML::Simple::XMLin('XML::Simple=HASH(0x162c6e30)', 'changelog.xml') called at perlXML_test.pl line 11
Asked
Active
Viewed 8,134 times
-4

ikegami
- 367,544
- 15
- 269
- 518

imarchuang
- 467
- 7
- 17
-
1You dump some error message and expect help? – Dan Dascalescu Feb 25 '14 at 19:13
1 Answers
7
It's a warning saying you don't have any SAX parser for XML::SAX to use except the slow and buggy XML::SAX::PurePerl.
Installing a parser for XML::SAX will update the file, creating it if necessary.
cpan XML::LibXML::SAX
You could also tell XML::Simple to use XML::Parser instead of XML::SAX.
$XML::Simple::PREFERRED_PARSER = 'XML::Parser';
Setting environment variable XML_SIMPLE_PREFERRED_PARSER
to the same value will have the same effect.
XML::Parser is much faster backend than any of the XML::SAX parsers that exited when I did benchmarks a couple of years ago. It doesn't handle namespaces, though.
Personally, I'd avoid XML::Simple. It's the hardest XML parser to use correctly. I use XML::LibXML.

ikegami
- 367,544
- 15
- 269
- 518
-
Thanks... I'll try to work on it with XML::LibXML. Is this library from CPAN? – imarchuang Feb 26 '14 at 18:03
-
Yes, it's there, though it requires the libxml2 C++ library. If your OS distro provides that, you should go with that. On Windows and ActivePerl, you can use `ppm install XML::LibXML` – ikegami Feb 26 '14 at 18:13
-
This bash one-liner worked for me: `sax=\`perl -MXML::SAX -le 'print $INC{"XML/SAX.pm"}'\`; sax="${sax%%.pm}/ParserDetails.ini"; [ -e "$sax" ] || printf "[XML::SAX::PurePerl]\nhttp://xml.org/sax/features/namespaces = 1\n" | sudo tee "$sax"` – Nov 29 '14 at 07:26