使用嵌套级别的属性值重命名 XML 元素
本文关键字:重命名 XML 元素 属性 嵌套 | 更新日期: 2023-09-27 18:36:20
我有一个xml文档,该文档具有嵌套级别<div>
元素和属性。我想按属性名称重命名div。
此转换:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="div">
<xsl:element name="{@class}">
<xsl:apply-templates select="node()|@*"/>
</xsl:element>
</xsl:template>
</xsl:stylesheet>
应用于以下 XML 文档时:
<html>
<div class="animal">
Animals:
<div class="mammal">
Mammals:
<div class="dog">
Dogs
</div>
<div class="cat">Cats</div>
</div>
</div>
</html>
产生所需的正确结果:
<html>
<animal class="animal">
Animals:
<mammal class="mammal">
Mammals:
<dog class="dog">
Dogs
</dog>
<cat class="cat">Cats</cat>
</mammal>
</animal>
</html>
解释:
正确使用标识规则设计模式。