У меня есть XML ($ fileXML), например:
<FatturaElettronicaHeader>
<CedentePrestatore>
<DatiAnagrafici>
<Anagrafica>
<Denominazione>MY STORE SRL</Denominazione>
<Cognome>Rossi</Cognome>
</Anagrafica>
</DatiAnagrafici>
</CedentePrestatore>
</FatturaElettronicaHeader>
Я использую эту функцию для получения некоторых значений:
$xml = new DOMDocument();
$xml->loadXML($fileXML);
$xpath = new DOMXPath($xml);
$nodes = $xpath->query('//CedentePrestatore/DatiAnagrafici');
foreach ($nodes as $nodelist) {
$denominazione = $xpath->query( 'Anagrafica/Denominazione', $nodelist)->item(0)->nodeValue;
$cognome = $xpath->query( 'Anagrafica/Cognome', $nodelist)->item(0)->nodeValue;
}
Отлично работает.Но узел Cognome
является необязательным в XML, поэтому иногда его не существует, например:
<FatturaElettronicaHeader>
<CedentePrestatore>
<DatiAnagrafici>
<Anagrafica>
<Denominazione>MY SHOP2 SRL</Denominazione>
</Anagrafica>
</DatiAnagrafici>
</CedentePrestatore>
</FatturaElettronicaHeader>
Тогда мой скрипт получает ошибку: Trying to get property of non-object
Как я могу изменить свойкод для присвоения переменной $cognome
значение узла, если существует, пустая строка ""
в других случаях?