Compruebe si el nodo xml existe en PHP [duplicado]
Esta pregunta ya tiene una respuesta aquí:
php SimpleXML verifica si existe un hijo 15 respuestasTengo este objeto de resultado simplexml:
object(SimpleXMLElement)#207 (2) {
["@attributes"]=>
array(1) {
["version"]=>
string(1) "1"
}
["weather"]=>
object(SimpleXMLElement)#206 (2) {
["@attributes"]=>
array(1) {
["section"]=>
string(1) "0"
}
["problem_cause"]=>
object(SimpleXMLElement)#94 (1) {
["@attributes"]=>
array(1) {
["data"]=>
string(0) ""
}
}
}
}
Necesito verificar si el nodo "problema_causa" existe. Incluso si está vacío, el resultado es un error. En el manual de PHP, encontré este código PHP que modifiqué para mis necesidades:
function xml_child_exists($xml, $childpath)
{
$result = $xml->xpath($childpath);
if (count($result)) {
return true;
} else {
return false;
}
}
if(xml_child_exists($xml, 'THE_PATH')) //error
{
return false;
}
return $xml;
No tengo idea de qué poner en lugar de la consulta xpath 'THE_PATH' para verificar si el nodo existe. ¿O es mejor convertir el objeto simplexml a dom?