2

我正在编辑一个 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()

4

2 回答 2

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

仅适用于 XPath 2.0,其中:

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

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

于 2013-08-19T21:00:06.747 回答
2

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

name(.)

周期表示当前节点。这是一个更好地解释它的链接。是否有 XSLT 元素名称?

于 2013-08-19T21:00:33.117 回答