我正在使用 xslt2.0 将一种 xml 格式转换为另一种 xml 格式。这是我的示例 xml 文档。
<w:document>
<w:body>
<w:p>Para1</w:p>
<w:p>Para2</w:p>
<w:p>Para3</w:p>
<w:p>Para4</w:p>
</w:body>
</w:document>
<w:p>
最初这是我的 xml 格式。所以,我通过下面给出的 xslt 中的函数处理了每一个元素......
<xsl:template match="document">
<Document>
<xsl:sequence select="mf:group(body/p, 1,count(//w:body//w:p)-1)"/>
</Document>
</xsl:template>
所以,在那个 xslt 函数中,我编写了如何重新格式化这些元素的代码。它工作正常......
但是现在,Xml 格式被重组如下所示......
<w:document>
<w:body>
<w:tbl><!--some text with children elements--></w:tbl>
<w:tbl><!--some text with children elements--></w:tbl>
<w:p>Para1</w:p>
<w:p>Para2</w:p>
<w:p>Para3</w:p>
<w:p>Para4</w:p>
</w:body>
</w:document>
所以,到目前为止,我必须以相同的顺序处理 和 元素.....
我想做的是,
如果我遇到元素,那么我必须调用下面给出的模板......
<xsl:template match="document">
<Document>
<xsl:for-each select="w:tbl">
<xsl:apply-templates select="w:tbl">
</xsl:apply-templates>
</xsl:for-each>
<xsl:sequence select="mf:group(body/p, 1,count(//w:body//w:p)-1)"/>
</Document>
</xsl:template>
<xsl:template match="w:tbl">
<!--xslt code here -->
</xsl:template>
但是当我尝试转换时不会执行 for-each 语句......
所以,请指导我摆脱这个问题......