Dado el código php:Conseguir la parte de texto de un nodo utilizando PHP XML simple
$xml = <<<EOF
<articles>
<article>
This is a link
<link>Title</link>
with some text following it.
</article>
</articles>
EOF;
function traverse($xml) {
$result = "";
foreach($xml->children() as $x) {
if ($x->count()) {
$result .= traverse($x);
}
else {
$result .= $x;
}
}
return $result;
}
$parser = new SimpleXMLElement($xml);
traverse($parser);
que esperaba el travesaño() para volver:
This is a link Title with some text following it.
Sin embargo, se devuelve sólo:
Title
¿Hay alguna manera de obtener el resultado esperado utilizando simpleXML (obviamente con el fin de consumir los datos en lugar de simplemente r eturning it como en este simple ejemplo)?
Gracias, N.
Esto realmente produce el resultado exacto que estaba esperando, sin resolver realmente el problema subyacente de atravesar el documento Xml. – Nikolaj
No podrá "atravesar" o iterar sobre nodos de texto con SimpleXML. O al menos, será artificial/poco práctico si es posible. Use SimpleXML siempre que haga las cosas más fáciles, luego importe los nodos seleccionados a DOM para acceder a las funciones que no son parte de SimpleXML. –
Sí, de hecho. Parece que tuve que aprenderlo de la manera difícil. – Nikolaj