我正在使用 xslt 2.0 将一个 xml 文件转换为另一个 xml 文件。在 XSLT 2.0 中,我创建了一个带有一个参数的函数。实际上,参数是<w:p>
元素的集合。所以,在我<xsl:for-each-group>
用来获取每个参数的函数中<w:p>
并逐个处理。假设,下面提到的 XML 文件<w:table
在元素之间包含一个 > 元素。所以<w:p>
,现在我想following-sibling::w:table
在处理块中的每个<w:p>
元素后检查函数<xsl:for-each-group>
。
XML 文件
<w:document>
<w:p> para0</w:p>
<w:p> para1</w:p>
<w:table>table</w:table>
<w:p>para3</w:p>
</w:document>
XSLT 代码段:
<xsl:for-each-group select="$paragraphs" group-starting-with="w:p">
<xsl:apply-templates select="current-group()"> <!-- for processing <w:p>elements -->
</xsl:apply-templates>
<xsl:if test="following-sibling::w:table"> <!--check following-sibling of current <w:p> is <w:table> -->
<xsl:apply-templates select="following-sibling::w:table"> </xsl:apply-templates>
</xsl:if>
</xsl:for-each-group>
但是在following-sibling::w:table
处理第一个元素时调用的检查。我只会在处理第二个元素时调用。所以,我只想检查following-sibling
当前处理元素的下一个立即数是否在那个地方......
所以,请指导我摆脱这个问题......