Как я могу сопоставить атрибуты xmlns: * с XSLT? - PullRequest
3 голосов
/ 19 января 2010

Как мне сопоставить атрибуты 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 ]

8 голосов
/ 19 января 2010

Атрибуты xmlns не являются обычными атрибутами, они являются объявлениями пространства имен. Вам нужно использовать ось пространства имен для доступа к ним.

например:.

<xsl:for-each select="namespace::*">
   <xsl:value-of select="name()" />
</xsl:for-each>
1 голос
/ 19 января 2010

Вы не можете напрямую, но посмотрите на ось namespace:

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