两个如何将两个xpath表达式合并为一个?

时间:2013-03-01 20:11:28

标签: xpath

还在战斗。拥有这两个xpath表达式,都需要将它们组合成一个:

(1) //scale[@gender="*" or @gender="m"][@age="*" or @age="39-59"]

(2) //d[@scid="hi"][@raw="10"]/@t

这是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>

尝试

//scale[@gender="*" or @gender="m"][@age="*" or @age="39-59"]/d[@scid="hi"][@raw="10"]@t

- &GT;失败。

1 个答案:

答案 0 :(得分:2)

您在合并后的查询中错过/之前的@t,除了它看起来很好并且返回t="76"给定的输入。

//scale[@gender="*" or @gender="m"][@age="*" or @age="39-59"]/d[@scid="hi"][@raw="10"]/@t