Мне нужно выбрать узлы из xml, условия см. Ниже. Я использую simplexml, поэтому xpath должен быть 1.0.php xpath получение значений атрибутов на основе нескольких атрибутов и родительских атрибутов
XML фрагмент:
<scales>
<scale id="1" gender="*" age="*">
<d scid="hi" raw="10" t="76" />
<d scid="pn" raw="12" t="80" />
</scale>
<scale id="2" gender="m" age="*">
<d scid="hi" raw="8" t="79" />
<d scid="pn" raw="2" t="50" />
</scale>
<scale id="3" gender="*" age="19-39">
<d scid="hi" raw="0" t="48" />
<d scid="pn" raw="10" t="49" />
</scale>
</scales>
Теперь я хочу, чтобы выбрать t
из атрибута по <d>
узла, который имеет ...
raw="10" AND scid="hi"
$result=$xml->xpath('//d[@scid="hi"][@raw="10"]/@t');
И его родитель-узел <scale>
имеет ...
(gender="*" OR gender="m") AND (age="*" OR age="39-59")
$result=$xml->xpath('//scale[@gender="*" or @gender="m"][@age="*" or @age="39-59"]');
Я хотел бы получить это с помощью 1 xpath-statement fr om my simplexml-object $xml
.
В вашем XML есть ошибка, по крайней мере, raw = «12 отсутствует», которая не может быть hleping или это просто ошибка здесь? – Dave
@Dave: спасибо, mistype, отредактировал его – michi
вы можете предоставить некоторый фактический код php, например, как вы пытаетесь запросить его в данный момент – Dave