in reply to Re^2: XML::SAX::ParserFactory policy and differences between parser implementations
in thread XML::SAX::ParserFactory policy and differences between parser implementations

Also I do not get the same results as you with my test program and data.

What do you get with my program?

update:

Could you check for what file XML::LibXML::SAX manages to give you an encoding?

When its not utf-8 when its  encoding="ISO-8859-1"

  • Comment on Re^3: XML::SAX::ParserFactory policy and differences between parser implementations
  • Download Code

Replies are listed 'Best First'.
Re^4: XML::SAX::ParserFactory policy and differences between parser implementations
by seki (Monk) on Mar 02, 2016 at 02:57 UTC
    with your code and my data.xml:
    XML::SAX::PurePerl doc () XML::SAX::Expat doc ("Standalone", "", "Encoding", "UTF-8", "Version", "1.0") XML::SAX::ExpatXS doc () decl ("Encoding", "UTF-8", "Version", "1.0", "Standalone", undef) XML::LibXML::SAX::Parser doc () decl ("Version", "1.0", "Encoding", "UTF-8") XML::LibXML::SAX doc () decl ("Version", "1.0")
    It agrees with my own test: XML::LibXML::SAX does not get the encoding while XML:LibXML::SAX::Parser does.
    It seems that the parser must be carefully and explicitly selected to get consistent results, rather than letting the factory pass a broken parser.

    Update: indeed it seems that XML::LibXML::SAX fails to give the encoding of an utf-8 encoded file while it succeeds with an iso-8859-1. I have no other encoding from xml file right available for another test.