【发布时间】:2011-11-04 06:10:29
【问题描述】:
这是我的 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>
我想将每个表分组到单独的表节点中。我是怎么做的?请指导我摆脱这个问题...
【问题讨论】:
-
你也想做其他事情。只需为每个 w:tbl 元素执行一个操作,并在需要时添加任何前面的元素。
-
@FailedDev:: 谢谢,我会努力实现你的想法。如果你找到了方法,请告诉我