Захват следующих узлов до указанного c узла - PullRequest
0 голосов
/ 10 июля 2020

У меня есть такие данные:

<h4>Test1</h4>
<p>test</p>
<div>test</div>
<p>test</p>
<h4>Test2</h4>
<p>test</p>
<div>test</div>
<p>test</p>
<h4>Test3</h4>
<p>test</p>
<div>test</div>
<p>test</p>

Я пытаюсь захватить все родственные узлы H4, пока не дойду до другого H4.

Сейчас я использую:

<xsl:for-each select="//h4”>

<xsl:copy-of select="following-sibling::*[generate-id(preceding-sibling::h4[1]) = generate-id(current())]"/>

</xsl:for-each>

Это работает, но захватывает последний тег h4. Я хочу исключить этот тег h4. В настоящее время вывод выглядит следующим образом:

<p>test</p>
<div>test</div>
<p>test</p>
<h4>Test2</h4>

Есть ли способ не захватить h4?

1 Ответ

1 голос
/ 10 июля 2020

Вы можете использовать following-sibling::*[not(self::h4)] вместо following-sibling::*.

...