我想要一个XSLT程序,它将以一种方式转换XMl文件,该方法将从根节点的所有子节点(直到深层)读取/提取所有属性并复制到父节点。然后删除所有子节点。 输入xml
enter code here
<root>
<a key="1"/>
<b key1="2">
<c key3="3"/>
</b>
</root>
和输出xml将是这样的:
<root key="1" key1="2" key3="3" />
答案 0 :(得分:1)
你可以做得很简单:
XSLT 1.0
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
<xsl:template match="/root">
<xsl:copy>
<xsl:copy-of select="//@*"/>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
但是,元素不能具有两个具有相同名称的属性。如果您的XML具有多个相同属性的实例,则它们将相互覆盖,并且只有最后一个将出现在输出中。