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

hok*_*kos 5 xml xpath

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

<VIDEOS>
    <LOW_RES>video_L.flv</LOW_RES>
    <HI_RES>video_H.flv</HI_RES>
    <HD/>
</VIDEOS>
Run Code Online (Sandbox Code Playgroud)

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

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

<VIDEOS>
    <LOW_RES>video_L.flv</LOW_RES>
    <HI_RES>video_H.flv</HI_RES>
    <HD>video_hd.mp4</HD>
</VIDEOS>
Run Code Online (Sandbox Code Playgroud)

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

Dim*_*hev 2

使用

/*/HD[text()]
|
 /*/HI_RES[text() and not(../HD/text())]
|
 /*/LOW_RES[text() and not(../HD/text()) and not(../HI_RES/text())]
Run Code Online (Sandbox Code Playgroud)