xml — функция SimpleXML xpath для получения значения определенного узла

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");

1

Решение

Наконец я нашел ответ

Вместо

$building_address = $listing_node->xpath("//commons:FullStreetAddress");

(Выше приведен поиск по корневому узлу XML по всему узлу.)

Мы должны использовать

$building_address = $listing_node->Address->xpath("commons:FullStreetAddress");

Это для поиска внутри конкретного узла.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]