gpt4 book ai didi

xml - 如何通过 xslt 在 xml 文件中按名称计算节点?

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

我是 xsl 的新手。我有以下 xml:

    <record>
<fruit>Apples</fruit>
<fruit>Oranges</fruit>
<fruit>Bananas</fruit>
<fruit>Plums</fruit>
<vegetable>Carrots</vegetable>
<vegetable>Peas</vegetable>
<candy>Snickers</candy>

我想使用 key 函数并有一个输出文件:

     <record> 1
--<fruit> 4
--<vegetable> 2
--<candy> 1

有什么解决办法吗?

最佳答案

就这么简单:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text"/>
<xsl:key name="kElemByName" match="*" use="name()"/>

<xsl:template match=
"*[not(generate-id()=generate-id(key('kElemByName',name())[1]))]"/>

<xsl:template match="*">
<xsl:value-of select=
"concat('&lt;',name(),'> ', count(key('kElemByName',name())),'&#xA;')"/>
<xsl:apply-templates select="*"/>
</xsl:template>
</xsl:stylesheet>

当此转换应用于提供的 XML 文档时:

<record>
<fruit>Apples</fruit>
<fruit>Oranges</fruit>
<fruit>Bananas</fruit>
<fruit>Plums</fruit>
<vegetable>Carrots</vegetable>
<vegetable>Peas</vegetable>
<candy>Snickers</candy>
</record>

产生了想要的、正确的结果:

<record> 1
<fruit> 4
<vegetable> 2
<candy> 1

关于xml - 如何通过 xslt 在 xml 文件中按名称计算节点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14290079/

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