1

还在战斗。让这两个 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

--> 失败。

4

1 回答 1

2

您在组合查询中缺少一个/before @t,除此之外它看起来很好并返回t="76"给定的输入。

//scale[@gender="*" or @gender="m"][@age="*" or @age="39-59"]/d[@scid="hi"][@raw="10"]/@t
于 2013-03-01T20:32:40.283 回答