XSL中可以获取当前选择的节点的标签名吗?

时间:2020-12-22 05:07:19
content of xml:
<root>
        <folder_1>
                <item>oh, my god!</item>
                <item>help me!</item>
        </folder_1>
        <folder_2>
                <item>sos!</item>
        </folder_2>
</root>

part of xsl:
<xsl:apply-templates select="/root/folder_1">
<xsl:apply-templates select="/root/folder_2">

<xsl:template match="/root/*">
<[CDATA[
<!--  Help me!
我怎么样才能在这里输出被选中的标签名也就是folder_1或者folder_2
别告诉我在XML里面改成<folder_1 name="folder_1">.....
太不优雅了的说
-->
]]>
</xsl:template>

8 个解决方案

#1


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

#2


偶用的是
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">

似乎不支持name()和local-name()呢。试了一下,连last()都不支持,但是node()是可以的。

#3


try
nodeName()

#4


无法显示 XML 页。 
使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 

--------------------------------------------------------------------------------

表达式没有返回一个 DOM 节点。 -->nodeName()<--
 

....看来还是要加上name="xxx"了……哎……

#5


to saucer:
我找了个例子:
<xsl:element name="{local-name(.)}">
</xsl:element>

这样的话是可以通过语法检查的,不过我不知道怎么才能在value-of中应用这个……你知道吗?

#6


element是因为作为一般字符串解释所以没错的,我看了生成的html后才知道,sigh....

非常感谢saucer的帮助,我想我还是加上name="xxx"吧

#7


sorry, I am not familiar with the old version, here is a page you can refer to in the future

http://www.w3schools.com/xsl/xsl_ie5elementref.asp

#8


谢谢,其中有答案的,<xsl:node-name/>

#1


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

#2


偶用的是
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/TR/WD-xsl">

似乎不支持name()和local-name()呢。试了一下,连last()都不支持,但是node()是可以的。

#3


try
nodeName()

#4


无法显示 XML 页。 
使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。 

--------------------------------------------------------------------------------

表达式没有返回一个 DOM 节点。 -->nodeName()<--
 

....看来还是要加上name="xxx"了……哎……

#5


to saucer:
我找了个例子:
<xsl:element name="{local-name(.)}">
</xsl:element>

这样的话是可以通过语法检查的,不过我不知道怎么才能在value-of中应用这个……你知道吗?

#6


element是因为作为一般字符串解释所以没错的,我看了生成的html后才知道,sigh....

非常感谢saucer的帮助,我想我还是加上name="xxx"吧

#7


sorry, I am not familiar with the old version, here is a page you can refer to in the future

http://www.w3schools.com/xsl/xsl_ie5elementref.asp

#8


谢谢,其中有答案的,<xsl:node-name/>