如何使用XSLT重命名XML标签

前端之家收集整理的这篇文章主要介绍了如何使用XSLT重命名XML标签前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我的XML-
  1. <CATALOG>
  2. <NAME>C1</NAME>
  3. <CD>
  4. <NAME>Empire Burlesque</NAME>
  5. <ARTIST>Bob Dylan</ARTIST>
  6. <COUNTRY>USA</COUNTRY>
  7. <COMPANY>Columbia</COMPANY>
  8. <PRICE>10.90</PRICE>
  9. <YEAR>1985</YEAR>
  10. </CD>
  11. <CD>
  12. <NAME>Hide your heart</NAME>
  13. <ARTIST>Bonnie Tyler</ARTIST>
  14. <COUNTRY>UK</COUNTRY>
  15. <COMPANY>CBS Records</COMPANY>
  16. <PRICE>9.90</PRICE>
  17. <YEAR>1988</YEAR>
  18. </CD>
  19. </CATALOG>

我想将目录中的NAME标签替换为CATALOG-NAME,将CD中的NAME标签替换为CD-NAME,这应该使我的xml看起来像这样,

  1. <CATALOG>
  2. <CATALOG-NAME>C1</CATALOG-NAME>
  3. <CD>
  4. <CD-NAME>Empire Burlesque</CD-NAME>
  5. <ARTIST>Bob Dylan</ARTIST>
  6. <COUNTRY>USA</COUNTRY>
  7. <COMPANY>Columbia</COMPANY>
  8. <PRICE>10.90</PRICE>
  9. <YEAR>1985</YEAR>
  10. </CD>
  11. <CD>
  12. <CD-NAME>Hide your heart</CD-NAME>
  13. <ARTIST>Bonnie Tyler</ARTIST>
  14. <COUNTRY>UK</COUNTRY>
  15. <COMPANY>CBS Records</COMPANY>
  16. <PRICE>9.90</PRICE>
  17. <YEAR>1988</YEAR>
  18. </CD>
  19. </CATALOG>
对要重命名的元素使用带有覆盖的标识变换:
  1. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  2. <xsl:template match="@*|node()">
  3. <xsl:copy>
  4. <xsl:apply-templates select="@*|node()" />
  5. </xsl:copy>
  6. </xsl:template>
  7. <xsl:template match="CD/NAME">
  8. <CD-NAME><xsl:apply-templates select="@*|node()" /></CD-NAME>
  9. </xsl:template>
  10. <xsl:template match="CATALOG/NAME">
  11. <CATALOG-NAME><xsl:apply-templates select="@*|node()" /></CATALOG-NAME>
  12. </xsl:template>
  13. </xsl:stylesheet>

猜你在找的XML相关文章