Analizzare XML problematico in querypath (punti in elementi)
Domanda
Sto cercando di analizzare un newsml (http://www.iptc.org/std/newsml-g2/2.7/examples/listing2_newsml-g2_complete.xml) con querypath. Ma ho problemi con i punti in alcuni elementi, come <body.head>
.
In alcuni plugin Firefox QueryPath sono in grado di sfuggire al punto con una retroscena, ma nella libreria PHP Pear questo non funziona.
Qualche idea?
(Sto cercando una soluzione all'interno di QueryPath, non per soluzioni alternative)
Soluzione
In passato, ho usato l'estensione PHP ordinata (http://us3.php.net/manual/en/book.tidy.php) per ripulire HTML/XML prima di passarlo in QueryPath.
L'XML che hai fatto riferimento sopra è piuttosto pulito e anche piuttosto piccolo.
Se l'unico problema è i punti nei nomi degli elementi, probabilmente anche la preelaborazione con un'espressione regolare. E sarebbe la soluzione più veloce. Immagino che potresti fare un preg_replace('/<body\./g', '<body-', $xml)
e farlo riparare. (Sostituirebbe body.content
insieme a body-content
e così via.)