Xpath如何根据订单选择一个元素并依赖于它的存在

时间:2010-04-05 03:10:06

标签: xml xpath

如何根据订单选择一个元素并依赖于它在XPath中的存在? 例如,如果存在最佳质量视频,如何选择。

<VIDEOS>
    <LOW_RES>video_L.flv</LOW_RES>
    <HI_RES>video_H.flv</HI_RES>
    <HD/>
</VIDEOS>

这应该返回video_H.flv因为hd版本不存在

这种情况可以存在(视频名称可以是随机的):

<VIDEOS>
    <LOW_RES>video_L.flv</LOW_RES>
    <HI_RES>video_H.flv</HI_RES>
    <HD>video_hd.mp4</HD>
</VIDEOS>

这应该返回video_hd.mp4,因为hd版本存在。 非常感谢。

1 个答案:

答案 0 :(得分:2)

使用

/*/HD[text()]
|
 /*/HI_RES[text() and not(../HD/text())]
|
 /*/LOW_RES[text() and not(../HD/text()) and not(../HI_RES/text())]