Использование PHP, SimpleXML и XPATH; Я хочу найти конкретный serviceId, а затем найти значения DMA и аббревиатуры. Я могу найти конкретный serviceId с помощью $xml->xpath(//d:ServiceId[.= '123'])
, но я не уверен, как изменить запрос xpath, чтобы также вернуть DMA и аббревиатуру.
<?xml>
<feed xmlns:m="" xmlns:d="">
<entry>
<content>
<m:properties>
<d:ServiceId>123</d:ServiceId>
<d:ServiceName>Service 1</d:ServiceName>
<d:DMA>DMA 1</d:DMAName>
<d:Abbreviation>ABC</d:Abbreviation>
</m:properties>
</content>
<content>
<m:properties>
<d:ServiceId>456</d:ServiceId>
<d:ServiceName>Service 2</d:ServiceName>
<d:DMA>DMA 2</d:DMAName>
<d:Abbreviation>DEF</d:Abbreviation>
</m:properties>
</content>
<content>
<m:properties>
<d:ServiceId>789</d:ServiceId>
<d:ServiceName>Service 3</d:ServiceName>
<d:DMA>DMA 3</d:DMAName>
<d:Abbreviation>HIJ</d:Abbreviation>
</m:properties>
</content>
</entry>
</feed>
</xml>
Сначала нужно получить m:properties
node. Чтобы использовать это XPath:
//m:properties[d:ServiceId = 123]
После этого просто запросите этот узел для извлечения d:DMA
и d:Abbreviation
элементы. Извините, я не знаю PHP, но это должно быть просто.
Как альтернатива, попробуйте этот XPath с оператором union:
//m:properties[d:ServiceId = 123]/d:DMA | //m:properties[d:ServiceId = 123]/d:Abbreviation