Xpath, как выбрать элемент на основе порядка и в зависимости от его существования - PullRequest
5 голосов
/ 05 апреля 2010

как выбрать элемент на основе порядка и в зависимости от его существования в 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 Ответ

2 голосов
/ 05 апреля 2010

Использование :

/*/HD[text()]
|
 /*/HI_RES[text() and not(../HD/text())]
|
 /*/LOW_RES[text() and not(../HD/text()) and not(../HI_RES/text())]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...