gpt4 book ai didi

xml - xslt 1.0 - 如何使用相同级别的元素进行嵌套分组

转载 作者:数据小太阳 更新时间:2023-10-29 02:35:41 26 4
gpt4 key购买 nike

我有以下形式的 xml

<operation>
<update>
<wogroup>id1</wogroup>
<woid>SL0001</woid>
<status>NEW</status>
</update>
<update>
<wogroup>id1</wogroup>
<woid>SL0001</woid>
<status>OPEN</status>
</update>
<update>
<wogroup>id1</wogroup>
<woid>SL0001</woid>
<status>CLOSED</status>
</update>
<update>
<wogroup>id1</wogroup>
<woid>SL0002</woid>
<status>NEW</status>
</update>
<update>
<wogroup>id2</wogroup>
<woid>SL00011</woid>
<status>OVERRIDE</status>
</update>
<update>
<wogroup>id2</wogroup>
<woid>SL00011</woid>
<status>CLOSED</status>
</update>
<update>
<wogroup>id2</wogroup>
<woid>SL00021</woid>
<status>NEW</status>
</update>
</operation>

我不知道xml是什么样子的,但我需要用html做一个报告。我希望看到一个像

Group : id1
WO : SL001
NEW
OPEN
CLOSED
WO : SL002
NEW
Group : id2
WO : SL0011
OVERRIDE
CLOSED
WO : SL0021
NEW

我成功地在 wogroup 或 woid 上进行了分组,但没有以嵌套的方式进行分组……有人有什么建议吗?

最佳答案

我不知道这是否是最好的方法,但它可以根据需要对元素进行分组:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="UTF-8" />

<xsl:key name="updates-by-wogroup" match="/operation/update" use="wogroup" />
<xsl:key name="updates-by-wogroup-and-woid" match="/operation/update" use="concat(wogroup,woid)" />

<xsl:template match="/">
<xsl:for-each select="operation/update[not(wogroup = preceding-sibling::update/wogroup)]">
Group: <xsl:value-of select="wogroup" />
<xsl:for-each select="key('updates-by-wogroup',current()/wogroup)[not(woid = preceding-sibling::update/woid)]">
WO: <xsl:value-of select="woid" />
<xsl:for-each select="key('updates-by-wogroup-and-woid',concat(current()/wogroup,current()/woid))">
<xsl:text>
<xsl:value-of select="status" /></xsl:text>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

如果你成功地按 wogroup 或 woid 分组,你就会理解代码,无论如何,如果你需要任何问题。

关于xml - xslt 1.0 - 如何使用相同级别的元素进行嵌套分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19830999/

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