Понятный способ использования XPath для поиска элементов, которые содержат данный дочерний элемент? - PullRequest
2 голосов
/ 28 марта 2012

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

<Catalog>
    <CUnit id="Bd">
        <Race value="T1"/>
    </CUnit>
    <CUnit id="Critter">
    </CUnit>
    <CUnit id="Ld">
        <Race value="T1"/>
    </CUnit>
</Catalog>

Я хочу использовать XPath для извлечения элементов CUnit, имеющих дочерний элемент Race.Есть ли более ясный способ, чем этот?

CUnit/Race/..

Ответы [ 2 ]

3 голосов
/ 28 марта 2012

Используйте предикат вместо:

//CUnit[Race]
2 голосов
/ 28 марта 2012

Избегайте использования псевдооператора // , потому что во многих механизмах XPath он реализован очень неэффективно (вызывает обход всего поддерева, внедренного в узел контекста).

Если структура XML-документа хорошо известна, используйте конкретные пути.

В этом случае :

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