seqio - ¿Cuál es el mejor analizador de XML para Perl?
seqio read (8)
He probado muchos Perl XML Parsers. Estaba bastante interesado en el analizador Sablotron, pero es tan doloroso instalarlo en una caja de Windows. Actualmente comencé a usar XML::LibXML y XML::LibXSLT que parecen hacer todo lo que necesito.
Parecen ser bastante estándar también. ¿Hay mejores analizadores de XML para usar que esto?
(En realidad, no es una respuesta, sino un comentario; sin embargo, no puedo comentar ...)
XML :: Simple ha sido mencionado aquí.
(Sé que son pocos desde hace unos años, pero esto apareció en Google hoy ...)
Sin embargo, su sitio ( http://metacpan.org/pod/XML::Simple ) ahora dice:
ESTADO DE ESTE MÓDULO
Se desaconseja el uso de este módulo en el nuevo código. Otros módulos están disponibles que proporcionan interfaces más directas y consistentes. En particular, XML :: LibXML es muy recomendable.
Los principales problemas con este módulo son la gran cantidad de opciones y las formas arbitrarias en que interactúan estas opciones, a menudo con resultados inesperados.
Los parches con correcciones de errores y correcciones de documentación son bienvenidos, pero es poco probable que se agreguen nuevas características.
Creo que deberías probar XML :: MyXML también. Es muy fácil de usar.
Creo que estás usando uno bastante bueno. XML::LibXML , Matt Sergeant y la interfaz Perl de Christian Glahn para libxml2 de Daniel libxml2 es uno de los analizadores XML más rápidos que conozco.
En mi experiencia XML::Simple es mejor para el análisis rápido y sucio de XML. Lo usamos para analizar datos de terceros que no siempre se ajustan al estándar XML. XML :: Simple arroja errores informativos y te permite correr muy rápido.
Ofreceré uno que NO DEBERÍA ser utilizado: XML::Parser .
Expande automáticamente las entidades HTML a sus equivalentes UTF-8, y la opción de desactivar este comportamiento no funciona en la característica más característica de todas las entidades, &
.
Además, su XMLDecl-parser interpretará y mostrará el atributo standalone
en el bloque <?xml ... ?>
Como "standalone"="1"
, que es absolutamente incorrecto: debería ser "standalone"="yes"
.
Realmente depende de tus necesidades, como han dicho las personas. Para analizar archivos XML de ~ 100Mb de tamaño (anotaciones de genes de TAIR , 1 archivo por cromosoma), utilicé el módulo XML::Twig Mirod, que le permite establecer devoluciones de llamadas para analizar los elementos que le interesan, presentando cada subdocumento como un XML :: Árbol simple. Combina los beneficios de un analizador SAX (escaneando el archivo como una secuencia) con un analizador DOM (trabajando más fácilmente con las piezas interesantes).
Si necesita velocidad, potencia o funciones, XML :: LibXML es el camino a seguir. Si buscas facilidad de uso, XML::Simple es una alternativa viable.
También puede ver XML::Liberal que usa LibXML debajo.