Я хочу преобразовать один формат xml в другой формат xml с помощью xslt 2.0. Теперь я хочу получить следующие немедленные следующие элементы:: 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>
Но это дало неверный результат...
Пожалуйста, помогите мне избавиться от этой проблемы...