gpt4 book ai didi

xml - 使用 group-by 对元素进行分组

转载 作者:行者123 更新时间:2023-12-04 04:35:54 24 4
gpt4 key购买 nike

我正在使用 XSLT 2.0 来执行此操作,我也遇到了类似的问题,但给出的答案无法正常工作。 Similar One

XML

<Users>
<User id="1" name="TYE" Division="Admin"/>
<User id="2" name="ANN" Division="HR"/>
<User id="3" name="LAR" Division="Marketing"/>
<User id="4" name="JSN" Division="Admin"/>
</Users>

需要这样的输出;
<AllUsers>
<Division value="HR">
<User>
<id>2</id>
<name>TYE</name>
</User>
<User>
<id>5</id>
<name>JSN</name>
</User>
</Division>
<Division value="ADMIN">
<User>
<id>3</id>
<name>ANN</name>
</User>
</Division>
<Division value="Marketing">
<User>
<id>4</id>
<name>LAR</name>
</User>
</Division>
</AllUsers>

需要按部门分组..谢谢。

最佳答案

这就是我会做的,

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:output method="xml" indent="yes" encoding="UTF-8" omit-xml-declaration="yes" />
<xsl:key name="division" match="User" use="@Division" />
<xsl:template match="Users">
<xsl:element name="AllUsers">
<xsl:for-each-group select="*" group-by="@Division">
<xsl:element name="Division">
<xsl:attribute name="value">
<xsl:value-of select="@Division" />
</xsl:attribute>
<xsl:for-each select="current-group()">
<xsl:element name="User">
<xsl:element name="id">
<xsl:value-of select="@id" />
</xsl:element>
<xsl:element name="name">
<xsl:value-of select="@name" />
</xsl:element>
</xsl:element>
</xsl:for-each>
</xsl:element>
</xsl:for-each-group>
</xsl:element>
</xsl:template>
</xsl:stylesheet>

让我知道这是否有效?据我所知,它应该。

关于xml - 使用 group-by 对元素进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19760977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com