gpt4 book ai didi

xml - 查找所有子元素的最大值,并在xslt中获取其父元素

转载 作者:行者123 更新时间:2023-12-03 16:22:29 24 4
gpt4 key购买 nike

这个问题与此帖子Find maximum value of all child elements and get its parent element in XSLT有关。我问错了问题。实际上,我需要的输出几乎没有什么不同。我需要将站点节点ID与工作站点节点进行匹配,并找出为该站点工作了更多时间的人。

<root>
<Site id="S1">
<othernodes></othernodes>
</Site>
<Site id="S2">
<othernodes></othernodes>
</Site>
<Site id="S3">
<othernodes></othernodes>
</Site>
<WorkSite Person="P1" Site="S1">
<Hours>8</Hours>
</WorkSite>
<WorkSite Person="P1" Site="S2">
<Hours>2</Hours>
</WorkSite>
<WorkSite Person="P1" Site="S3">
<Hours>20</Hours>
</WorkSite>
<WorkSite Person="P2" Site="S1">
<Hours>6</Hours>
</WorkSite>
<WorkSite Person="P2" Site="S2">
<Hours>10</Hours>
</WorkSite>
<WorkSite Person="P2" Site="S3">
<Hours>21</Hours>
</WorkSite>
</root>


转换后的内容应该是这样的

<root>
<site id="S1">
<othernodes></othernodes>
<person>P1</person>
</site>
<site id="S2">
<othernodes></othernodes>
<person>P2</person>
</site>
<site id="S3">
<othernodes></othernodes>
<person>P1</person>
</site>
</root>


有人可以帮忙吗?

最佳答案

像这样吗

<xsl:template match="/">
<root>
<xsl:apply-templates select="root/Site" />
</root>
</xsl:template>

<xsl:template match="/root/Site">
<xsl:variable name="sid" select="./@id" />
<site id="{./@id}">
<othernodes></othernodes>
<xsl:apply-templates select="/root/WorkSite[@Site = $sid]">
<xsl:sort select="./Hours" data-type="number" order="descending"/>
</xsl:apply-templates>
</site>
</xsl:template>

<xsl:template match="/root/WorkSite">
<xsl:if test="position() = 1">
<person><xsl:value-of select="./@Person" /></person>
</xsl:if>
</xsl:template>

关于xml - 查找所有子元素的最大值,并在xslt中获取其父元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3463161/

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