我需要从xml中选择节点,条件见下文 . 我使用的是simplexml,因此xpath必须为1.0 .
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>
现在,我想选择具有...的 <d>
节点的 t
-Attribute .
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"]');
我想从我的simplexml-object $xml
获得1 xpath语句 .
2 回答
只需结合您的两个XPath查询...
Live demo
输出
76
.好快速读入xpath似乎你可以做属性匹配这样的事情
这应该返回您想要的实际比例标记 . 然后你可以在返回的$ scale中循环遍历标签,并使用类似的东西拉出标准属性(注意不准确但正确的概念)