Os cuento mi caso a ver si alguien encuentra una solución:
Tengo un fichero XML con infinifad de productos, cada uno con su nombre, descripcion, precio y demas campos. No todos los productos tienen todos los campos, y la extructura del xml no contiene todos los nodos hijos de cada producto, es decir, en vez de respetar la extructura y hacer todos los nodos "product" con los mismos nodos hijo lo que me han pasado es un xml con muchos nodos "product" pero no son iguales en su extructura, algunos carecen de algun nodo hijo.
Para mostralos correctamente he escrito este código:
Código PHP:
$productos = $docxml->getElementsByTagName('product');
foreach($productos as $producto) {
$nodos = $producto->childNodes;
for($i=0;$i < $nodos->length;$i++) {
$nombreNodo = $nodos->item($i)->nodeName;
$valor = $nodos->item($i)->nodeValue;
switch($nombreNodo) {
case "name":
echo "<b>Nombre: </b>$valor<br>";
break;
case "description":
echo "<b>Descripcion: </b>$valor<br>";
break;
default:
echo "";
}
}
}
Código PHP:
...
default:
echo "$nombreNodo<br>";