我想使用 xslt 2.0 将一种 xml 格式转换为另一种 xml 格式。现在我想获取上下文节点的下一个紧随其后的::node() 元素。例如,
这是我的 xml 文档:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"
xmlns:v="urn:schemas-microsoft-com:vml">
<w:body>
<w:p>para1</w:p> <!-- assume this as context node -->
<w:tbl>table data 1</w:tbl>
<w:tbl>table data 2</w:tbl>
<w:p>para2</w:p>
<w:tbl>table data 3</w:tbl>
<w:tbl>table data 4</w:tbl>
<w:tbl>table data 5</w:tbl>
<w:tbl>table data 6</w:tbl>
<w:p>para3</w:p>
</w:body>
</w:document>
因此,根据上述 xml 文件中提到的上下文节点,我只想选择表数据 1 和表数据 2。
例如,如果我的上下文节点是 para2,那么我只想选择表数据 3、表数据 4、表数据 5 和表数据 6。
所以,我写了这样的xslt,
<xsl:for-each select="following::node()/self::w:tbl">
<xsl:choose>
<xsl:when test="self::w:tbl">
<xsl:apply-templates select="self::w:tbl"></xsl:apply-templates>
</xsl:when>
</xsl:choose>
</xsl:for-each>
但它产生了错误的结果......
请指导我摆脱这个问题......