php xpath - funciones de cadena en un atributo
Pregunta
¿Cuál es la sintaxis correcta para aplicar funciones de cadena (por ejemplo, " normalize-space ") en un atributo mediante la consulta xpath a continuación?
Consulta: " ./@ media "
He visto ejemplos de esto en otros lugares, pero si lo intento con la biblioteca xpath de php, no devuelve nada ...
Solución
El uso de query () en un objeto DOMXPath se siempre da como resultado un conjunto de nodos (envuelto en un DOMNodeList objeto), nunca en una cadena.
No puede extraer los resultados de las funciones XPath. Debe consultar los nodos que desea procesar y procesarlos en PHP.
Otros consejos
Utilice evalúe () en lugar de la consulta ()
. Se devolverá un resultado escrito. Está disponible desde PHP 5.1.
$doc = new DOMDocument();
$xpath = new DOMXpath($doc);
$q = $xpath->evaluate('"test"');
var_dump($q);
salida:
string(4) "test"
./[normalize-space(@media)
Por favor intente esto.
¿Qué tal esto?
normalize-space(./@media)
También puedes probar: pero no creo que sea necesario aquí.