从XML文件中只选择一个节点
我有一个XML文件,必须将其转换为另一个XML文件。 我不知道我应该做什么,只选择一次每个节点到第二个文件 (使用此节点包含的所有内容!)从XML文件中只选择一个节点,xml,xslt,copy,Xml,Xslt,Copy,我有一个XML文件,必须将其转换为另一个XML文件。 我不知道我应该做什么,只选择一次每个节点到第二个文件 (使用此节点包含的所有内容!) … … … … …` 等等。 我只想复制,中的第一个。 我应该在XML文件中写什么?基本上,这是一个分组问题。按项目名称对项目进行分组,并复制每组中的第一个项目 给定格式良好的输入,例如: XML <root> <aaa>aaa1</aaa> <bbb>bbb1</bbb>
我应该在XML文件中写什么?基本上,这是一个分组问题。按项目名称对项目进行分组,并复制每组中的第一个项目 给定格式良好的输入,例如: XML
<root>
<aaa>aaa1</aaa>
<bbb>bbb1</bbb>
<ccc>ccc1</ccc>
<aaa>aaa2</aaa>
<bbb>bbb2</bbb>`
<ccc>ccc3</ccc>
<aaa>aaa3</aaa>
<bbb>bbb3</bbb>`
</root>
aaa1
bbb1
ccc1
aaa2
bbb2`
ccc3
aaa3
bbb3`
以下样式表:
XSLT2.0
<xsl:stylesheet version="2.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:for-each-group select="*" group-by="name()">
<!-- Within the sequence constructor contained in the xsl:for-each-group element, the context item is the initial item of the relevant group. -->
<xsl:copy-of select="."/>
</xsl:for-each-group>
</xsl:copy>
</xsl:template>
</xsl:stylesheet>
将返回:
结果
<?xml version="1.0" encoding="UTF-8"?>
<root>
<aaa>aaa1</aaa>
<bbb>bbb1</bbb>
<ccc>ccc1</ccc>
</root>
aaa1
bbb1
ccc1
您能使用XSLT 2.0吗?@michael.hor257k是的