Xslt 2.0 将重复单元格导出为一个单元格

Xslt 2.0 将重复单元格导出为一个单元格,xslt-2.0,Xslt 2.0,我正在尝试导出一个简单的电子表格,其中一些单元格是空的,一些是满的 每次此XSL导出器读取一个与未写入的单元格相同的单元格时。如果相邻的单元格具有相同的值,则会忽略这些单元格 <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:office="urn:oasis:names:

我正在尝试导出一个简单的电子表格,其中一些单元格是空的,一些是满的

每次此XSL导出器读取一个与未写入的单元格相同的单元格时。如果相邻的单元格具有相同的值,则会忽略这些单元格

<?xml version="1.0" encoding="UTF-8"?>


<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
   xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
   xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
   exclude-result-prefixes="office table text">

<xsl:output method = "xml" indent = "yes" encoding = "UTF-8" omit-xml-declaration = "yes"/>


<xsl:param name="targetURL"/>

<!-- Process the document model -->
<xsl:template match="/">

<data name="SiteData"><xsl:apply-templates select="//table:table"/></data>
</xsl:template>

<xsl:template match="table:table">
  <!-- Process all table-rows after the column labels in table-row 1 -->
  <xsl:for-each select="table:table-row">
     <!-- Process the  columns -->
        <xsl:for-each select="table:table-cell">
            <xsl:value-of select="."/>:</xsl:for-each>

    <xsl:value-of select="text:p"/> ;</xsl:for-each>
</xsl:template>


</xsl:stylesheet>

:
;

我已经试过了所有可能的解决办法,但我就是解决不了这个问题。有没有人知道如何为每个单元格编写“:”,而不管它是空的还是重复的

我怀疑您使用的源XML忽略了重复的单元格,也许它包含了某种重复计数来表示“此单元格重复了N次”。找一个简单的例子来演示这个问题,并仔细研究XML表示。我制作了一个导入过滤器,成功地编写了电子表格,包括重复单元格和空单元格。问题是,当上面的导出过滤器试图将此电子表格保存到XML表单中时,如果单元格在同一行中重复出现,它不会写入这些单元格。