gpt4 book ai didi

xml - XSLT 2.0 分组

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

我正在尝试使用 XSLT 2.0 中的 xsl:for-each 对元素进行分组。

这是我输入的一个例子:

<root>
<chapter>
<heading> heading text </heading>
<title> title </title>
<p> 1111 </p>
<p> 2222 </p>
<center> text </center>
<p> 3333 </p>
<title> another title </title>
<p> 4444 </p>
<center> text </center>
<p> 5555 </p>
</chapter>
<chapter>
<heading> heading text </heading>
<title> another title </title>
<p> 6666 </p>
<p> 7777 </p>
<title> another title </title>
<p> 8888 </p>
<p> 9999 </p>
</chapter>
<root>

我试图通过匹配每个 <title> 来对这份文档进行分组元素并将每个后续元素分组直到下一个 <title>进入一个元素<section> .这是我希望输出的样子:

<root>
<chapter>
<heading> Heading text </heading>
<section>
<title> title </title>
<p> 1111 </p>
<p> 2222 </p>
<center> text </center>
<p> 3333 </p>
</section>
<section>
<title> title </title>
<p> 4444 </p>
<center> text </center>
<p> 5555 </p>
</section>
<section>
<title> title </title>
<p> 6666 </p>
<p> 7777 </p>
<center> text </center>
<p> 8888 </p>
<p> 9999 </p>
</section>
<chapter>
<root>

我当前的模板不起作用:

<xsl:template match="chapter">
<chapter>
<xsl:for-each-group select="*" group-starting-with="title">
<section>
<xsl:copy-of select="current-group()" />
</section>
</xsl:for-each-group>
</chapter>
</xsl:template>

上面的样式表确实对我想要的部分进行了分组,但是它也对每个 <heading> 进行了分组元素到它自己的<section>因为某些原因。有什么建议吗?

提前致谢。

最佳答案

我会用...

<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" />
<xsl:strip-space elements="*" />

<xsl:template match="/*">
<root>
<xsl:for-each-group select="chapter" group-by="heading">
<chapter>
<xsl:copy-of select="current-group()[1]/heading" />
<xsl:for-each-group select="current-group()/(* except heading)"
group-starting-with="title">
<section>
<xsl:copy-of select="current-group()" />
</section>
</xsl:for-each-group>
</chapter>
</xsl:for-each-group>
</root>
</xsl:template>

</xsl:stylesheet>

关于xml - XSLT 2.0 分组 <xsl :for-each-group>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12676189/

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