如何在 XSLT 中获取标签名称?
How to get tag name in XSLT?
我做了一个简单的例子xslt
。我想在 h2
中显示标签名称。如何使用xslt显示标签名称?
这是我的代码:Link
我用过这个
<!--h1><xsl:value-of select="abc/p/name(.)"/></h1-->
它给我一个错误。为什么?
预期输出:
"P"(abc 标签内的第一个标签)
首先:添加一个<xsl:template match="text()" />
以避免不必要的输出。
然后我会更改第一个模板以匹配您 abc
因为这是有趣的 parent 节点。如果你想要节点的任何 child,请使用 abc/*
。然后模板将匹配 abs/p
和 abc/catalog
。但是你只想要第一个child,对吧?所以使用abc/*[1]
。这只会匹配 abc/p
。现在您可以执行 name(.)
或 local-name()
.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="abc/*[1]">
<html>
<body>
<h1><xsl:value-of select="local-name()"/></h1>
</body>
</html>
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>
你的XML-File
<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(.)"/>
只要您的处理器支持 XSLT 2.0,就可以使用。
在 XSLT 1.0 中,您需要做:
<xsl:value-of select="name(abc/p)"/>
这当然也适用于 XSLT 2.0。
我做了一个简单的例子xslt
。我想在 h2
中显示标签名称。如何使用xslt显示标签名称?
这是我的代码:Link
我用过这个
<!--h1><xsl:value-of select="abc/p/name(.)"/></h1-->
它给我一个错误。为什么?
预期输出:
"P"(abc 标签内的第一个标签)
首先:添加一个<xsl:template match="text()" />
以避免不必要的输出。
然后我会更改第一个模板以匹配您 abc
因为这是有趣的 parent 节点。如果你想要节点的任何 child,请使用 abc/*
。然后模板将匹配 abs/p
和 abc/catalog
。但是你只想要第一个child,对吧?所以使用abc/*[1]
。这只会匹配 abc/p
。现在您可以执行 name(.)
或 local-name()
.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="abc/*[1]">
<html>
<body>
<h1><xsl:value-of select="local-name()"/></h1>
</body>
</html>
</xsl:template>
<xsl:template match="text()" />
</xsl:stylesheet>
你的XML-File
<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(.)"/>
只要您的处理器支持 XSLT 2.0,就可以使用。
在 XSLT 1.0 中,您需要做:
<xsl:value-of select="name(abc/p)"/>
这当然也适用于 XSLT 2.0。