2013-03-01 234 views
1

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

- >失败。

回答

2

您在组合查询中缺少/之前的@t,除了它看起来不错并且对于给定输入返回t="76"

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