使用XSLT / XPath,我如何匹配null命名空间中的任何元素?

时间:2008-12-09 13:59:03

标签: xml xslt xpath

<xsl:template match="foo">

匹配null命名空间中的foo元素。

<xsl:template match="*">

匹配任何命名空间中的任何元素。

我试过了:

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

但为null命名空间声明前缀是违法的。

那么如何在null命名空间中将元素与任何名称匹配?

2 个答案:

答案 0 :(得分:5)

你可以尝试:

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

如果节点集为空或没有名称空间URI,namespace-uri函数将返回一个空字符串,这应该可以达到你想要的效果。

答案 1 :(得分:4)

ffpf是正确的。

为了更加清晰,我建议使用以下匹配模式:

“的 *[not(namespace-uri() )]