Выберите атрибуты элемента, которые не имеют указанного пространства имен XPath 2.0 - PullRequest
1 голос
/ 25 ноября 2011

Просто быстрый вопрос:

Если у меня есть элемент, скажем

<element a:lol="." a:rofl="." b:lol="." b:rofl="." lol="." rofl="."/>

Я знаю, что могу выбрать все атрибуты в пространстве имен a с помощью @a:*

Как выбрать все атрибуты без какого-либо пространства имен?

Я знаю, что @*[namespace-uri()=''] работает, но я надеялся на что-то более компактное - например, префикс ключевого слова.например: @none:*.

Ответы [ 2 ]

1 голос
/ 25 ноября 2011

Вы также можете использовать :

@*[name() eq local-name()]

В XPath любое нефиксированное имя считается находящимся в «пространстве без имен», поэтому это выражение выбирает только нефиксированные имена, то есть имена, которые находятся в «нет пространства имен».

1 голос
/ 25 ноября 2011

@*[namespace-uri() = ''] мне кажется хорошим подходом.

...