Estoy analizando los resultados XML de una llamada API utilizando PHP y xpath.Extrayendo el texto y el atributo de un nodo determinado mediante Xpath
$dom = new DOMDocument();
$dom->loadXML($response->getBody());
$xpath = new DOMXPath($dom);
$xpath->registerNamespace("a", "http://www.example.com");
$hrefs = $xpath->query('//a:Books/text()', $dom);
for ($i = 0; $i < $hrefs->length; $i++) {
$arrBookTitle[$i] = $hrefs->item($i)->data;
}
$hrefs = $xpath->query('//a:Books', $dom);
for ($i = 0; $i < $hrefs->length; $i++) {
$arrBookDewey[$i] = $hrefs->item($i)->getAttribute('DeweyDecimal');
}
Esto funciona, pero hay una manera de que pueda acceder tanto el texto como el atributo de una consulta? Y si es así, ¿cómo se llega a esos elementos una vez que se ejecuta la consulta?
Entonces, ¿solo usaría el elemento-> datos y elemento-> getAttribute para obtener los resultados? –
No estoy seguro de cómo funciona la biblioteca XSLT de PHP, pero es posible que pueda obtenerla solo con item-> data. Vale la pena intentarlo, de todos modos. –