Пытался найти сам, но безуспешно.
Часть моего кода - получить xml из веб-службы и распечатать некоторые данные.
Я хочу получить всю информацию об отеле (теги), где id отеля = 285
а также, как мне узнать номер рейса, если внутренний тег отеля - "678"?
<packages>
<pck type = "vacation">
<flight num = "1">
<date></date>
<airline></airline>
<hotels>
<hotel>
<number>1</number>
<id>285</id>
<price>250 USD</price>
</hotel>
<hotel>
<number>2</number>
<id>678</id>
<price>480 USD</price>
</hotel>
</hotels>
</flight>
<flight num = "2">
</flight>
<hotel_details>
<hotel id = "285">
<name>Alexander</name>
<location></location>
<rate></rate>
</hotel>
<hotel id = "678">
<name>Leonardo</name>
<location></location>
<rate></rate>
</hotel>
</hotel_details>
</pck>
<pck type = "ski">
</pck>
</packages>
Похоже, это хороший пример использования XPath.
слишком много способов получить данные ... это сложно. Я попробовал их оба, но безуспешно. не могли бы вы мне показать? @arkascha
Мы не собираемся писать код за вас, но если вы отредактируете свой вопрос и покажете нам, что вы пробовали, мы поможем вам найти решение.
Я не уверен, что ваш XML находится в формате, пригодном для анализа. Вместо этого: <hotel id = "285"> <name> Александр </name> <location> </location> <rate> </rate> </hotel> Я бы сделал это, чтобы вы могли перебирать отель узел, проверяя значение id: <hotel> <id> 285 </id> <name> Александр </name> <location> </location> <rate> </rate> </hotel>






PHP имеет класс DOMDocument (https://secure.php.net/manual/en/class.domdocument.php)
Это довольно просто:
$doc = new DOMDocument();
$doc->loadXML($xml);
// convert to xpath
$xpath = new DOMXPath($doc);
// search
$search_results = $xpath->query('//flight//hotel[@id=678]');
Подробнее читайте на:
Вам, безусловно, следует использовать для этого синтаксический анализатор xml. Взгляните на SimpleXML.