2010-12-08 3 views

ответ

1

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

Этот вопрос еще не совсем ясен. В XML (+ пространства имен) каждый узел имеет, по меньшей мере, два пространства - с зарезервированными префиксами «XML» и «Xmlns»)

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

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

Решение:

not(namespace-uri() = "") 

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

0

Пространство имен всегда существует - это может быть default один, но он будет существовать.

+0

но как проверить используя состояние? – 2010-12-08 10:01:52

0

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

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

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

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

Каждый элемент может быть выбран с этими выражениями:

namespace-uri($node) 

local-name($node) 

substring-before(name($node),':') 
Смежные вопросы