Это мой XML-документ.
<w:document xmlns:w="w">
<w:body>
<w:p>
<w:pPr><w:pStyle w:val="Heading1"/></w:pPr>
<w:r><w:t>Tables</w:t></w:r> <!-- Assume Current Node here -->
</w:p>
<w:tbl>
<w:tr>
<w:tc>
<w:p>
<w:r><w:t>row1col</w:t></w:r>
</w:p>
</w:tc>
<w:tc>
<w:p>
<w:r><w:t>row1co2</w:t></w:r>
</w:p>
</w:tc>
</w:tr>
<w:tr>
<w:tc>
<w:p>
<w:r><w:t>row2col1</w:t></w:r>
</w:p>
</w:tc>
<w:tc>
<w:p>
<w:r><w:t>row2col2</w:t></w:r>
</w:p>
</w:tc>
</w:tr>
</w:tbl>
<w:p>
<w:pPr><w:pStyle w:val="Normal"/></w:pPr>
<w:r><w:t>2nd table</w:t></w:r>
</w:p>
<w:tbl>
<w:tr>
<w:tc>
<w:p>
<w:r><w:t>row11col11</w:t></w:r>
</w:p>
</w:tc>
<w:tc>
<w:p>
<w:r><w:t>row11co12</w:t></w:r>
</w:p>
</w:tc>
</w:tr>
<w:tr>
<w:tc>
<w:p>
<w:r><w:t>row12col11</w:t></w:r>
</w:p>
</w:tc>
<w:tc>
<w:p>
<w:r><w:t>row12col12</w:t></w:r>
</w:p>
</w:tc>
</w:tr>
</w:tbl>
</w:body>
</w:document>
Итак, я хочу преобразовать этот XML-файл в заданный формат.
<Document>
<Heading1>
<title>Tables</title>
<table>
<paragraph>row1col1</paragraph>
<paragraph>row1col2</paragraph>
<paragraph>row2col1</paragraph>
<paragraph>row2col2</paragraph>
</table>
<paragraph>2nd Table</paragraph>
<table>
<paragraph>row11col11</paragraph>
<paragraph>row11col12</paragraph>
<paragraph>row12col11</paragraph>
<paragraph>row12col12</paragraph>
</table>
</Heading1>
</Document>
Я сделал почти все, кроме указанного ниже случая. Предположим, что текущий узел является первым <w:p>
(упоминается в документе XML). Так что для получения элементов таблицы я кодировал как
<xsl:choose>
<xsl:when test="following-sibling::w:tbl//w:p[w:r[w:t]]" >
<table>
<!--some code here -->
</table>
</xsl:when>
</xsl:choose>
но при этом вывод выглядит как ...
<table>
<paragraph>row1col1</paragraph>
<paragraph>row1col2</paragraph>
<paragraph>row2col1</paragraph>
<paragraph>row2col2</paragraph>
<paragraph>row11col11</paragraph>
<paragraph>row11col12</paragraph>
<paragraph>row12col11</paragraph>
<paragraph>row12col12</paragraph>
</table>
Я хочу сгруппировать каждую таблицу в отдельный узел таблицы. Как мне это сделать? Пожалуйста, помогите мне выйти из этого вопроса ...