按一个子节点分组并组合其他子节点的值

时间:2014-05-15 14:17:32

标签: xml xslt

下面是我当前XML的示例:

<products>
    <product>
        <id>1</id>
        <name>Name 1</name>
        <price>10.00</price>
        <size>M</size>
        <link>http://link1.com</link>
        <stock>1</stock>
    </product>
    <product>
        <id>1</id>
        <name>Name 1</name>
        <price>10.00</price>
        <size>L</size>
        <link>http://link1.com</link>
        <stock>3</stock>
    </product>
    <product>
        <id>1</id>
        <name>Name 1</name>
        <price>10.00</price>
        <size>XL</size>
        <link>http://link1.com</link>
        <stock>2</stock>
    </product>
    <product>
        <id>2</id>
        <name>Name 2</name>
        <price>30.00</price>
        <size>M</size>
        <link>http://link2.com</link>
        <stock>3</stock>
    </product>
    <product>
        <id>2</id>
        <name>Name 2</name>
        <price>30.00</price>
        <size>L</size>
        <link>http://link2.com</link>
        <stock>2</stock>
    </product>
</products>

我希望根据id合并每个产品,并使用XSLT删除重复项。

如果id相同,则节点namepricelink始终相同。

如果size相同,则节点stockid可以不同。对于这些节点(sizestock),这些值应总结到节点中(以逗号分隔)。

结果应如下所示:

<products>
    <product>
        <id>1</id>
        <name>Name 1</name>
        <price>10.00</price>
        <size>M,L,XL</size>
        <link>http://link1.com</link>
        <stock>1,3,2</stock>
    </product>
    <product>
        <id>2</id>
        <name>Name 2</name>
        <price>30.00</price>
        <size>M,L</size>
        <link>http://link2.com</link>
        <stock>3,2</stock>
    </product>
</products>

我已经搜索并尝试了几种解决方案,但无法解决这个问题。

有没有人可以帮助我?

谢谢!

0 个答案:

没有答案