Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSLT:将具有重复ID的平面列表转换为层次结构_Xml_Xslt - Fatal编程技术网

Xml XSLT:将具有重复ID的平面列表转换为层次结构

Xml XSLT:将具有重复ID的平面列表转换为层次结构,xml,xslt,Xml,Xslt,我很难找到XSLT来识别某个元素的重复项,并对其进行组合/压缩以避免重复 我有这样的XML: <items> <item> <ID>1</ID> <RelationalID>55</RelationalID> </item> <item> <ID>1</ID> <RelationalI

我很难找到XSLT来识别某个元素的重复项,并对其进行组合/压缩以避免重复

我有这样的XML:

<items>
    <item>
        <ID>1</ID>
        <RelationalID>55</RelationalID>
    </item>
    <item>
        <ID>1</ID>
        <RelationalID>56</RelationalID>
    </item>
    <item>
        <ID>1</ID>
        <RelationalID>57</RelationalID>
    </item>
    <item>
        <ID>2</ID>
        <RelationalID>55</RelationalID>
    </item>
</items>
希望它看起来像:

<items>
    <item>
        <ID>1</ID>
        <RelationalID>55</RelationalID>
        <RelationalID>56</RelationalID>
        <RelationalID>57</RelationalID>
    </item>
    <item>
        <ID>2</ID>
        <RelationalID>55</RelationalID>
    </item>
</items>

这是一个标准的分组问题。如果您能够使用XSLT2.0,请使用

<xsl:for-each-group select="item" group-by="ID">
  <xsl:copy-of select="current-group()[1]/ID, current-group()/RelationalID"/>
</xsl:for-each-group>

如果您坚持使用XSLT1.0,请阅读Muenchian分组。

如果您使用XSLT1.0,请搜索Muenchian分组。如果您使用的是XSLT2.0,请在xsl:上搜索每个组。如果仍然存在问题,请将XSLT添加到问题中。另请参见,我没有看到任何项目的真实副本。是否可以将一个项目与另一个项目具有相同的ID和RelationalID?如果是这样的话,XSLT应该如何处理/输出是什么样子的?请添加您迄今为止创建的XSLT。另外,请具体说明用于转换文件的XSLT版本。