|
Получить атрибут из XML в цикле
|
|||
---|---|---|---|
#18+
Доброго времени суток, у меня проблема с парсингом XML ответа, нужно получить в цикле FOREACH значение аттрибута PRICE(смотри под спойлером), для конкретного ROOM CODE и DATE. Никак не могу правильно сделать, плиз хелп <ns2:availability date="2013-05-28"> <ns2:avail rate_code="VR" seld_type="C" avail_num="7" extra_avail_num="7" modify="Y" planning="GEN" avail_sequence="DUSG"> <ns2:room code="SG"> <ns2:mealplan code="BB" price="119.0" currency="EUR"/> <ns2:mealplan code="HC" price="30.0" currency="EUR"/> <ns2:mealplan code="OB" price="101.0" currency="EUR"/> </ns2:room> <ns2:room code="DU"> <ns2:mealplan code="BB" price="300.0" currency="EUR"/> <ns2:mealplan code="OB" price="96.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="2" extra_avail_num="2" modify="Y" planning="GEN" avail_sequence="SJ"> <ns2:room code="SJ"> <ns2:mealplan code="BB" price="405.0" currency="EUR"/> <ns2:mealplan code="OB" price="345.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="3" extra_avail_num="3" modify="Y" planning="GEN" avail_sequence="TNTP"> <ns2:room code="TN"> <ns2:mealplan code="BB" price="250.0" currency="EUR"/> <ns2:mealplan code="OB" price="125.5" currency="EUR"/> </ns2:room> <ns2:room code="TP"> <ns2:mealplan code="BB" price="20.0" currency="EUR"/> <ns2:mealplan code="OB" price="411.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="0" extra_avail_num="0" modify="Y" planning="GEN" avail_sequence="TL"> <ns2:room code="TL"> <ns2:mealplan code="BB" price="190.0" currency="EUR"/> <ns2:mealplan code="OB" price="251.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="7" extra_avail_num="4" modify="Y" planning="GEN" avail_sequence="DBTW"> <ns2:room code="DB"> <ns2:mealplan code="BB" price="375.0" currency="EUR"/> <ns2:mealplan code="OB" price="325.0" currency="EUR"/> </ns2:room> <ns2:room code="TW"> <ns2:mealplan code="BB" price="50.0" currency="EUR"/> <ns2:mealplan code="OB" price="401.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="0" extra_avail_num="0" modify="Y" planning="GEN" avail_sequence="CDCN"> <ns2:room code="CD"> <ns2:mealplan code="BB" price="20.0" currency="EUR"/> <ns2:mealplan code="OB" price="16.0" currency="EUR"/> </ns2:room> <ns2:room code="CN"> <ns2:mealplan code="BB" price="465.0" currency="EUR"/> <ns2:mealplan code="OB" price="405.0" currency="EUR"/> </ns2:room> </ns2:avail> </ns2:availability> <ns2:availability date="2013-05-29"> <ns2:avail rate_code="VR" seld_type="C" avail_num="0" extra_avail_num="0" modify="Y" planning="GEN" avail_sequence="CDCN"> <ns2:room code="CD"> <ns2:mealplan code="BB" price="20.0" currency="EUR"/> <ns2:mealplan code="OB" price="16.0" currency="EUR"/> </ns2:room> <ns2:room code="CN"> <ns2:mealplan code="BB" price="465.0" currency="EUR"/> <ns2:mealplan code="OB" price="405.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="7" extra_avail_num="7" modify="Y" planning="GEN" avail_sequence="DBTW"> <ns2:room code="DB"> <ns2:mealplan code="BB" price="375.0" currency="EUR"/> <ns2:mealplan code="OB" price="325.0" currency="EUR"/> </ns2:room> <ns2:room code="TW"> <ns2:mealplan code="BB" price="50.0" currency="EUR"/> <ns2:mealplan code="OB" price="401.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="3" extra_avail_num="3" modify="Y" planning="GEN" avail_sequence="TNTP"> <ns2:room code="TN"> <ns2:mealplan code="BB" price="250.0" currency="EUR"/> <ns2:mealplan code="OB" price="125.5" currency="EUR"/> </ns2:room> <ns2:room code="TP"> <ns2:mealplan code="BB" price="20.0" currency="EUR"/> <ns2:mealplan code="OB" price="411.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="0" extra_avail_num="0" modify="Y" planning="GEN" avail_sequence="TL"> <ns2:room code="TL"> <ns2:mealplan code="BB" price="190.0" currency="EUR"/> <ns2:mealplan code="OB" price="251.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="2" extra_avail_num="2" modify="Y" planning="GEN" avail_sequence="SJ"> <ns2:room code="SJ"> <ns2:mealplan code="BB" price="405.0" currency="EUR"/> <ns2:mealplan code="OB" price="345.0" currency="EUR"/> </ns2:room> </ns2:avail> <ns2:avail rate_code="VR" seld_type="C" avail_num="7" extra_avail_num="7" modify="Y" planning="GEN" avail_sequence="DUSG"> <ns2:room code="SG"> <ns2:mealplan code="BB" price="119.0" currency="EUR"/> <ns2:mealplan code="HC" price="30.0" currency="EUR"/> <ns2:mealplan code="OB" price="101.0" currency="EUR"/> </ns2:room> <ns2:room code="DU"> <ns2:mealplan code="BB" price="66.0" currency="EUR"/> <ns2:mealplan code="TI" price="136.0" currency="EUR"/> </ns2:room> </ns2:avail> </ns2:availability> ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2013, 00:16 |
|
Получить атрибут из XML в цикле
|
|||
---|---|---|---|
#18+
Код: xml 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2013, 07:52 |
|
Получить атрибут из XML в цикле
|
|||
---|---|---|---|
#18+
mhx Код: xml 1. 2. 3.
Спасибо за ответ. Есть вариант с исползованием DOMDocument PHP(getElementsByTagName, getAttribute)??? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.05.2013, 19:10 |
|
Получить атрибут из XML в цикле
|
|||
---|---|---|---|
#18+
Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Это аналог вышеприведенного XSL ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2013, 07:41 |
|
Получить атрибут из XML в цикле
|
|||
---|---|---|---|
#18+
mhx, спасибо, реализовал через getElementsByTagName и getAttribute(слишком большой код, но главное работает), не до конца понял как все-таки работает xPath, например здесь: $nodes = $xpath->query ('//ns2:availability[@date="2013-05-29"]//ns2:room[@code="TW"]/*'); Я могу сделать так: $nodes = $xpath->query ('//ns2:availability[@date="$row->date"]//ns2:room[@code="$row->occupancy"]/*'); ? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.05.2013, 19:34 |
|
Получить атрибут из XML в цикле
|
|||
---|---|---|---|
#18+
Если в переменных $row->date и $row->occupancy хранятся строки, то да ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2013, 08:25 |
|
Получить атрибут из XML в цикле
|
|||
---|---|---|---|
#18+
Стоп, вру. Нет, переменные не обрабатываются внутри одинарных кавычек (апострофов). Что-то типа такого Код: php 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2013, 08:27 |
|
|
start [/forum/topic.php?fid=14&fpage=18&tid=1332526]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 141ms |
0 / 0 |