从XML文件中只选择一个节点

从XML文件中只选择一个节点,xml,xslt,copy,Xml,Xslt,Copy,我有一个XML文件,必须将其转换为另一个XML文件。 我不知道我应该做什么,只选择一次每个节点到第二个文件 (使用此节点包含的所有内容!) … … … … …` 等等。 我只想复制,中的第一个。 我应该在XML文件中写什么?基本上,这是一个分组问题。按项目名称对项目进行分组,并复制每组中的第一个项目 给定格式良好的输入,例如: XML <root> <aaa>aaa1</aaa> <bbb>bbb1</bbb>

我有一个XML文件,必须将其转换为另一个XML文件。 我不知道我应该做什么,只选择一次每个节点到第二个文件 (使用此节点包含的所有内容!)

`

等等。 我只想复制中的第一个。
我应该在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是的