我有一个带有可变子节点的XML样式表,如下所示:
<fooz>
<foo>
<bar id="11">
</foo>
<foo>
<baz id="22">
</foo>
<foo>
<biz id="33">
</foo>
</fooz>
所以我知道我可以使用
毫无问题地获取id<xsl:value-of select="foo/*/@id"/>
但是,在获取节点名称如“bar”,“baz”或“biz”时,我有点失落。我尝试了这样的东西没有任何快乐的结果:
<xsl:value-of select="foo/node()"/>
有一种简单的方法吗?
答案 0 :(得分:3)
我已经尝试使用xml-example的第一个xsl语句,但是我无法用它来检索所有id-attributes,只检索第一个。 为了得到所有,我需要使用for-each语句。
要获取节点的名称,您可以使用:
<xsl:value-of select="local-name()"/>
或
<xsl:value-of select="name()"/>
为了获得foo元素下的所有名称,我想出了以下内容:
<xsl:for-each select="/fooz/foo/*">
<tr>
<td><xsl:value-of select="local-name()"/></td>
<td><xsl:value-of select="@id" /></td>
</tr>
</xsl:for-each>