Jquery 如何在XSLT中获取标记名?

Jquery 如何在XSLT中获取标记名?,jquery,xml,xslt,xslt-1.0,xslt-2.0,Jquery,Xml,Xslt,Xslt 1.0,Xslt 2.0,我制作了一个简单的xslt示例。我想在h2中显示标记名。如何使用xslt显示标记名 这是我的密码: 我用过这个 <!--h1><xsl:value-of select="abc/p/name(.)"/></h1--> 这给了我一个错误。为什么? 预期产出: “p”(abc标记中的第一个标记)首先:添加以避免不必要的输出 然后我将更改第一个模板以匹配您abc,因为这是有趣的父节点。如果需要节点的任何子节点,请使用abc/*。然后模板将匹配abs/p和abc

我制作了一个简单的
xslt
示例。我想在
h2
中显示标记名。如何使用xslt显示标记名

这是我的密码:

我用过这个

<!--h1><xsl:value-of select="abc/p/name(.)"/></h1-->

这给了我一个错误。为什么?

预期产出:


“p”(abc标记中的第一个标记)

首先:添加
以避免不必要的输出

然后我将更改第一个模板以匹配您
abc
,因为这是有趣的父节点。如果需要节点的任何子节点,请使用
abc/*
。然后模板将匹配
abs/p
abc/catalog
。但你只想要第一个孩子,对吗?因此,请使用
abc/*[1]
。这将只匹配
abc/p
。现在您可以执行
name(.)
local-name()


您的XML文件

<abc>
    <p test='ravi'>test123</p>
    <catalog>
        <cd>
            <title>Empire Burlesque</title>
            <artist>Bob Dylan</artist>
            <country>USA</country>
            <company>Columbia</company>
            <price>10.90</price>
            <year>1985</year>
        </cd>
    </catalog>
</abc>

您的尝试:

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

如果您的处理器支持XSLT2.0,则可以正常工作

在XSLT 1.0中,您需要执行以下操作:

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


当然,这也适用于XSLT2.0。

这个
的用途是什么?为什么会出现不必要的错误?没有这一行,
填塞板将匹配以前未匹配的所有内容。这是开关柜中的一种默认设置。请在问题本身中发布代码,而不是在外部链接中发布代码。请告诉我调用功能不起作用的原因,我建议您单独发布一个问题。提示:
xsl:call-template
必须位于与输入内容相匹配的模板中。好的。这是我的问题
<xsl:value-of select="name(abc/p)"/>