先行 (または先行兄弟) および後続 (または後続兄弟) を正しく機能させることができません。
私は次のxmlを持っています:
<doc xmlns:lxslt="http://xml.apache.org/xslt" xml:lang="it">
<articolo id="U50779749147XPB">
<testatina id="U50779749147xtG">
<ln>in breve</ln>
</testatina>
<breve id="U50779749147yAC">
<h1>melegnano</h1>
<h2>Si ribalta</h2>
<h2>con l’auto</h2>
<h2>alla rotonda</h2>
<p>
<span class="rettangolo">n</span>
Sempre caro mi fu quest'ermo colle, e questa siepe, che da tanta
parte dell'ultimo orizzonte il guardo esclude. Ma sedendo e mirando,
</p>
<p class="rimando">
segue a pagina
<span class="pagina">5</span>
</p>
<h1>castelnuovo</h1>
<h2>Protesta</h2>
<h2>delle mamme</h2>
<h2>per la scuola</h2>
<p>
<span class="rettangolo">n</span>
Sempre caro mi fu quest'ermo colle, e questa siepe, che da tanta
parte dell'ultimo orizzonte il guardo esclude. Ma sedendo e mirando
</p>
<p class="rimando">
segue a pagina
<span class="pagina">8</span>
</p>
<h1>salerano</h1>
<h2>sull’incendio: </h2>
<h2>«non ci sono </h2>
<h2>misteri»</h2>
<p>
<span class="rettangolo">n</span>
Sete il guardo esclude. Ma sedendo e mirando, interminati spazi di
</p>
<p class="rimando">
segue a pagina
<span class="pagina">6</span>
</p>
</breve>
</articolo>
</doc>
2 番目と 3 番目の h1 の間のすべてのノードとコンテンツを選択する必要があります。
<h2>Protesta</h2>
<h2>delle mamme</h2>
<h2>per la scuola</h2>
<p>
<span class="rettangolo">n</span>
Sempre caro mi fu quest'ermo colle, e questa siepe, che da tanta
parte dell'ultimo orizzonte il guardo esclude. Ma sedendo e mirando
</p>
<p class="rimando">
segue a pagina
<span class="pagina">8</span>
</p>
私はすべてを試しましたが、次と前は期待どおりに機能しません:私は試しました
<xsl:variable name="set" select="/doc/articolo/breve/h1[2]/following::node()[count(.|/doc/articolo/breve/h1[3]/preceding::node())=count(/doc/articolo/breve/h1[3]/preceding::node())]"/>
しかし、結果は最初の h2: "Protesta" だけで、左側の h2 と p はすべてスキップされます。
そのため、演算子の次と前の単一の結果を確認しようとしましたが、ノードの前後のすべてではなく、いくつかの要素を返すだけです:たとえば:
<xsl:variable name="vtextPostM" select="following-sibling::doc/articolo/breve/h1[2]"/>
<xsl:variable name="vtextPreN" select="preceding-sibling::doc/articolo/breve/h1[3]"/>
returnin 要素なし、これ
<xsl:variable name="vtextPostM" select="/doc/articolo[1]/breve/h1[2]/following-sibling::node()"/>
<xsl:variable name="vtextPreN" select="/doc/articolo[1]/breve/h1[3]/preceding-sibling::node()"/>
これは部分的に間違ったセットを返します: 以下は、Protesta (および他のすべての後続ノードではない) と先行する Melegnano (h1[1] ですが、中間のすべてのノードはどうですか) を出力します。私は他の多くのテストをしましたが、何もしませんでした。