在XSLT中,如何将所有属性从所有子节点复制到xml的根节点?



我想要一个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" />

你可以很简单地做:

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 具有同一属性的多个实例,则它们将相互覆盖,并且输出中仅存在最后一个实例。

相关内容

  • 没有找到相关文章

最新更新