Analización de XML problemático en QueryPath (puntos en elementos)
Pregunta
Estoy tratando de analizar un noticias (http://www.iptc.org/std/newsml-g2/2.7/examples/listing2_newsml-g2_complete.xml) documento con QeryPath. Pero tengo problemas con los puntos en algunos elementos, como <body.head>
.
En algunos complementos de la consulta de Firefox, puedo escapar del punto con una barra insegura, pero en la biblioteca PHP Pear esto no funciona.
¿Algunas ideas?
(Estoy buscando una solución dentro de QueryPath, no para soluciones)
Solución
En el pasado, he usado la extensión PHP ordenada (http://us3.php.net/manual/en/book.tidy.php) para limpiar HTML/XML antes de pasarlo a QueryPath.
El XML que mencionó anteriormente es bastante limpio y también bastante pequeño.
Si el único problema es los puntos en los nombres de elementos, el preprocesamiento con una expresión regular probablemente también funcionaría. Y sería la solución más rápida. Supongo que podrías hacer un preg_replace('/<body\./g', '<body-', $xml)
y tenerlo arreglado. (Eso reemplazaría body.content
con body-content
y así.)