проверить пространство имен для узла - PullRequest
2 голосов
/ 08 декабря 2010

Как проверить, существует ли пространство имен для элемента?

Ответы [ 3 ]

1 голос
/ 08 декабря 2010

Как проверить, существует ли пространство имен для элемента?

Этот вопрос не совсем понятен.В XML (+ пространства имен) у каждого узла есть как минимум два пространства имен - с зарезервированными префиксами «xml» и «xmlns»)

Я интерпретирую вопрос как означающий :

Как проверить, является ли узел в пространстве имен.

Решение :

not(namespace-uri() = "")

это выражениеtrue() точно, когда текущий узел находится в пространстве имен, а false() в противном случае.

0 голосов
/ 08 декабря 2010

Собственно говоря, QName - это кортеж (URI пространства имен, локальное имя, префикс).

Для типов узлов, отличных от элементов и атрибутов, URI пространства имен и префикс пусты.

Дляэлемент под пустым (или пустым) URI пространства имен по умолчанию, только префикс пуст.

Все атрибуты с пустым префиксом имеют пустой URI пространства имен.

Каждый элемент можно выбрать с помощью следующих выражений:

namespace-uri($node)

local-name($node)

substring-before(name($node),':')
0 голосов
/ 08 декабря 2010

Пространство имен всегда существует - оно может быть по умолчанию , но оно будет существовать.

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