XML имеет следующую запись:
<?xml version="1.0"?>
<buildings xmlns='<NS-URL-here>'>
<building>
<Address>
<commons:FullStreetAddress>1234 Forest Hills Dr</commons:FullStreetAddress>
<commons:UnitNumber>LA - UNO</commons:UnitNumber>
<commons:City>Coral Springs</commons:City>
<commons:StateOrProvince>FL</commons:StateOrProvince>
<commons:PostalCode>33065</commons:PostalCode>
<commons:Country>US</commons:Country>
</Address>
.
.
.
<Offices>
<Office>
<Address>
<commons:FullStreetAddress>4567 City Hills Dr</commons:FullStreetAddress>
<commons:UnitNumber>Office - UNO</commons:UnitNumber>
<commons:City>Transels Springs</commons:City>
<commons:StateOrProvince>FL</commons:StateOrProvince>
<commons:PostalCode>75045</commons:PostalCode>
<commons:Country>US</commons:Country>
</Address>
</Office>
</Offices>
</building>
...
...
...
</buildings>
Мне нужно указать FullStreetAddress из Building Address. Не с офисного адреса.
Я использовал приведенный ниже код для получения, и он возвращает полный адрес офиса, если полный адрес здания отсутствует.
Как получить полный адрес только из узла Address Address.
Мой код:
$building_address = $listing_node->xpath("//commons:FullStreetAddress");
Наконец я нашел ответ
Вместо
$building_address = $listing_node->xpath("//commons:FullStreetAddress");
(Выше приведен поиск по корневому узлу XML по всему узлу.)
Мы должны использовать
$building_address = $listing_node->Address->xpath("commons:FullStreetAddress");
Это для поиска внутри конкретного узла.
Других решений пока нет …