如何将xmlns:*属性与XSLT匹配?

时间:2010-01-19 14:41:30

标签: xml xslt namespaces xml-namespaces

如何将 xmlns:* 属性与XSLT 1.0相匹配?我尝试使用RDF文档:

<xs:template match="rdf:RDF">
(...)
<xsl:for-each select="@*">
  <xsl:value-of select="."/>
</xsl:for-each>
(...)
</xsl:template>

但它似乎不适用于 xmlns 属性。

感谢。

2 个答案:

答案 0 :(得分:8)

xmlns属性不是普通属性,它们是名称空间声明。您需要使用命名空间轴来访问它们。

e.g:

<xsl:for-each select="namespace::*">
   <xsl:value-of select="name()" />
</xsl:for-each>

答案 1 :(得分:1)

你不能直接,但看看namespace轴:

<xsl:for-each select="namespace::*">
    <xsl:value-of select="."/>
</xsl:for-each>