如何使用XSLT重命名XML标记
这是我的XML-如何使用XSLT重命名XML标记,xml,xslt,xpath,Xml,Xslt,Xpath,这是我的XML- <CATALOG> <NAME>C1</NAME> <CD> <NAME>Empire Burlesque</NAME> <ARTIST>Bob Dylan</ARTIST> <COUNTRY>USA</COUNTRY> <COMPANY>Columbia</CO
<CATALOG>
<NAME>C1</NAME>
<CD>
<NAME>Empire Burlesque</NAME>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<NAME>Hide your heart</NAME>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>
C1
皇帝讽刺剧
鲍勃·迪伦
美国
哥伦比亚
10.90
1985
隐藏你的心
邦尼泰勒
英国
哥伦比亚唱片公司
9.90
1988
我想将catalog中的NAME标记替换为catalog-NAME,并将CD中的NAME标记替换为CD-NAME,这将使我的xml如下所示-
<CATALOG>
<CATALOG-NAME>C1</CATALOG-NAME>
<CD>
<CD-NAME>Empire Burlesque</CD-NAME>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
<CD>
<CD-NAME>Hide your heart</CD-NAME>
<ARTIST>Bonnie Tyler</ARTIST>
<COUNTRY>UK</COUNTRY>
<COMPANY>CBS Records</COMPANY>
<PRICE>9.90</PRICE>
<YEAR>1988</YEAR>
</CD>
</CATALOG>
C1
皇帝讽刺剧
鲍勃·迪伦
美国
哥伦比亚
10.90
1985
隐藏你的心
邦尼泰勒
英国
哥伦比亚唱片公司
9.90
1988
对要重命名的元素使用带覆盖的标识转换:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()" />
</xsl:copy>
</xsl:template>
<xsl:template match="CD/NAME">
<CD-NAME><xsl:apply-templates select="@*|node()" /></CD-NAME>
</xsl:template>
<xsl:template match="CATALOG/NAME">
<CATALOG-NAME><xsl:apply-templates select="@*|node()" /></CATALOG-NAME>
</xsl:template>
</xsl:stylesheet>
我一直在尝试使用XSLT,但没有找到任何可以更改标记值的函数。我上面发布的示例类似于我需要使用一个更大的XML文件来替换标记时所做的操作。您能否提供一行代码的工作说明?谢谢标识转换生成与其输入相同的输出。在本例中,我们稍微修改标识转换以匹配CD/NAME
和CATALOG/NAME
元素,并为这些特定标记名生成重命名的输出。其他一切都是一样的。这是一种常见的模式。