С XSLT / XPath, как я могу сопоставить любой элемент в пустом пространстве имен? - PullRequest
6 голосов
/ 09 декабря 2008
<xsl:template match="foo">

соответствует элементу foo в пустом пространстве имен.

<xsl:template match="*">

соответствует любому элементу в любом пространстве имен.

Я пытался:

xmlns:null=""
...
<xsl:template match="null:*">

но нельзя объявлять префикс для пустого пространства имен.

Так, как я могу сопоставить элемент с любым именем в пустом пространстве имен?

Ответы [ 2 ]

5 голосов
/ 09 декабря 2008

Вы можете попробовать:

<xsl:template match='*[namespace-uri() = ""]'>

Если набор узлов пуст или не имеет URI пространства имен, функция namespace-uri возвращает пустую строку, которая должна достичь того, что вы хотите.

4 голосов
/ 09 декабря 2008

ffpf правильно.

Для большей ясности я бы рекомендовал использовать следующую комбинацию:

'*[not(namespace-uri() )]'

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