如何在XSLT中获取元素名称

时间:2013-08-19 20:39:59

标签: xslt

我正在编辑XSL文件,但无法获取元素的名称。

此处的所有内容均有效,但../../name()除外。我尝试在那里做的是获取元素的名称。它下面的所有内容都成功获得了同一元素的属性,因此希望../../@name(等)工作的事实应该清楚我要对../../name()做些什么。

<tr>
<td><xsl:value-of select="../../name()" /></td>
<td><xsl:value-of select="../../@name"/></td>
<td><xsl:value-of select="../../@alias"/></td>
<td><xsl:value-of select="../../@comment"/><xsl:text>...</xsl:text></td>
<td><xsl:value-of select="../../dxl:wassignedby" /></td> 
<td><xsl:apply-templates select="."/></td>
</tr>

这段XML(如果它可以帮助你想象我正在谈论的内容)是:

<form name="Extended Content" alias="CONTENT" hide="notes" nocompose="true" noquery="true" publicaccess="false" designerversion="8">

我使用../../@name成功获取(例如)“扩展内容”,但未使用../../name()获取“表单”。

2 个答案:

答案 0 :(得分:2)

<xsl:value-of select="../../name()" />

仅适用于XPath 2.0,其中:

<xsl:value-of select="name(../..)" />

适用于XPath 1.0和2.0。所以我猜你正在运行XPath 1.0,你应该使用后者。

答案 1 :(得分:2)

您需要将参数传递给name()。传递给name的参数将是

name(.)

句点表示当前节点。这是一个更好地解释它的链接。 Is there an XSLT name-of element?

相关问题