Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: X технологии > XPath: выборка по атрибуту и по полю


Автор: Raily 25.1.2012, 15:51
У меня такой вопрос - есть XML следующего вида:
Код

<document>
<params>
<key ptype="AAA">
<prm_id>fNAME</prm_id>
<prm_label>Поле</prm_label>
</key>
<key ptype="BBB">
<prm_id>fNAME</prm_id>
<prm_label>Код поля</prm_label>
</key>
</params>
</document>

Мне нужно выбрать поле prm_label элемента, у которого атрибут ptype="BBB" и полу prm_id='fName'. Как объединить эти два условия?
Я могу написать условие только по атрибуту:
Код

$result = $xml->xpath('params/key[@ptype="BBB"]');

Или по полю:
Код

$result = $xml->xpath('params/key[prm_id="fNAME"]');

А как объединить эти два условия?
Пробовала следующие конструкции:

Код

$result = $xml->xpath('params/key[@ptype="BBB"] AND params/key[prm_id="fNAME"]');
$result = $xml->xpath('params/key[@ptype="BBB" AND prm_id="fNAME"]');
$result = $xml->xpath('params/key[@ptype="BBB"] AND [prm_id="fNAME"]');

Но пока не получилось  smile 

Автор: krypt3r 26.1.2012, 08:12
Попробуйте так
Код

$result = $xml->xpath ('//params/key[prm_id="fNAME" and @ptype="BBB"]/prm_label');
echo $result[0];

Вывод
Код

Код поля

Автор: Raily 27.1.2012, 15:21
спасибо! получилось!  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)