XPath: Как: выбрать всех детей и внуков (независимо от глубины) с заданным именем атрибута текущего контекста? - PullRequest
5 голосов
/ 09 июня 2011

XML:

<root0>
    <elem1>
        <elem21 xlink:href="21"/>
        <elem22>
            <elem31 xlink:href="31"/>
            <elem32>
                <elem41 xlink:href="41"/>
            </elem32>
        </elem22>
    </elem1>
</root0>

глубина неизвестна. Как выбрать все элементы с атрибутом xlink: href?

Я попробовал следующее:

*[@xlink:href]
self::*[@xlink:href]

Любое руководство приветствуется.

Ответы [ 2 ]

4 голосов
/ 09 июня 2011

Для просто детей внуков используйте

descendant-or-self::*[@xlink:href]

Для всех узлов просто добавьте // перед вашим xpath

//*[@xlink:href]

Кроме того, ваш образец xml недействителен, но я предполагаю, что это всего лишь образец.

0 голосов
/ 09 июня 2011

*[@xlink:href] должно работать.Скорее всего, вы не определили пространство имен xlink.

Если вы отправите код, то я могу быть более точным в своем ответе.

...