如何根据顺序及其在XPath中的存在情况来选择元素?
例如,如何选择最佳质量的视频(如果存在)。

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

这应该返回video_H.flv,因为高清版本不存在

这种情况可以存在(视频名称可以是随机的):
<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[text()]
|
 /*/HI_RES[text() and not(../HD/text())]
|
 /*/LOW_RES[text() and not(../HD/text()) and not(../HI_RES/text())]

关于xml - Xpath如何根据顺序以及是否存在元素来选择元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2576745/

10-12 06:29