gpt4 book ai didi

xml - 选择两个节点之间的所有 sibling (不包括 sibling )

转载 作者:行者123 更新时间:2023-12-03 17:03:50 27 4
gpt4 key购买 nike

我必须选择h1节点之间的所有内容。

<html>
<h1>Index</h1>
<p>some content</p>
<p>some more content</p>
<h1>Index 2</h1>
<p>some content</p>
<h2>other content</h2>
<h1>Index 3</h1>
<p>some content</p>
<p>other content</p>
<h1>Index 4</h1>
<h2>some content</h2>
<p>other content</p>
</html>


这应该导致这样的事情:

<heading>
<p>some content</p>
<p>some more content</p>
<heading>
...

最佳答案

在XSLT 2.0中,这是group-starting-with的一个好例子:

<xsl:template match="html">
<root>
<xsl:for-each-group select="*" group-starting-with="h1">
<heading text="{.}">
<xsl:sequence select="current-group() except ."/>
</heading>
</xsl:for-each-group>
</root>
</xsl:template>


current-group()是从一个h1(包括一个)到下一个(不包括)的整个元素组,而 .是按文档顺序在该组中的第一个节点(h1),因此 current-group() except .为您提供了想。

如果h1元素之间可能存在文本,而文本本身并未包装在另一个元素中,则您可能更喜欢使用 select="node()"而不是 select="*"

<h1>Example</h1>
Some unwrapped text
<p>...</p>

关于xml - 选择两个节点之间的所有 sibling (不包括 sibling ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28441803/

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