XPath Получить первый элемент подмножества - PullRequest
20 голосов
/ 11 апреля 2011

У меня есть XML как это:

<AAA>
    <BBB aaa="111" bbb="222">
        <CCC/>
        <CCC xxx="555" yyy="666" zzz="777"/>
    </BBB>
    <BBB aaa="999">
        <CCC xxx="qq"/>
        <DDD xxx="ww"/>
        <EEE xxx="oo"/>
    </BBB>
    <BBB>
        <DDD xxx="oo"/>
    </BBB>
</AAA>

Я хочу получить первый <CCC> элемент. Но с XPath выражением //*/CCC[1] у меня есть два <CCC> элемента. Каждый из них - первый элемент в контексте <BBB></BBB>. Как получить первый элемент в подмножестве?

Ответы [ 2 ]

41 голосов
/ 11 апреля 2011

Это должно работать для вас:

(//*/CCC)[1]
15 голосов
/ 11 апреля 2011

Я хочу получить первый элемент. Но с XPath выражение //*/CCC[1] У меня есть получил два элемента. Каждый из них является первый элемент в <BBB></BBB> контексте. Как получить первый элемент в подмножестве?

Это FAQ :

Оператор [] имеет более высокий приоритет (связывает сильнее), чем сокращение //.

Используйте

(//CCC)[1]

Выбирает первый (в порядке документа) элемент CCC в документе XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...