我想获取当前元素名称,但它显示另一个文档名称的名称。如何获取当前文档元素,而不是另一个文档元素名称?,这只是示例编码,不提供建议"获取名称"出于每个人。特别是我喜欢进入每个循环
<xsl:template match="*:LegisRefLink">
<xsl:element name="LegiRefered" namespace="http://www.w3.org/1999/xhtml">
<xsl:variable name="legs" select="document(@href)//*"/>
<xsl:for-each select="$legs//*:ref">
<xsl:value-of select="name(.)"/>// I would like to get current document element name, but it's showing $legis/ref. how to get current element instead of another document element name.
<xsl:value-of select="@refNo"/>
</xsl:for-each>
</xsl:element>
</xsl:template>
请帮我实现这个目标!感谢Advances!
此致 萨兰
答案 0 :(得分:0)
通常在XSL中,当前和上一个上下文之间存在冲突。这些通常必须用变量来解决,以保留以前状态的上下文:
<xsl:template match="*:LegisRefLink">
<xsl:element name="LegiRefered" namespace="http://www.w3.org/1999/xhtml">
<!-- Could save "." and get the name within the loop but if that's all we want, keep it efficient. -->
<xsl:variable name="refName" select="name(.)"/>
<xsl:variable name="legs" select="document(@href)//*"/>
<xsl:for-each select="$legs//*:ref">
<xsl:value-of select="$refName"/> <!-- Use the value saved earlier when we did have the correct context. -->
<xsl:value-of select="@refNo"/>
</xsl:for-each>
</xsl:element>
</xsl:template>
请注意,它使用与您正在加载的文档相同的语法 - 一个变量(XSL不允许您更改)只是一种保存特定节点,结果或值的方法。