我使用XSLT导出过滤器将OpenOffice Calc电子表格的一部分导出到XML文件中。
过滤器的一部分使用xls:for-each迭代,因为每次运行脚本时都可以有不同数量的条目。但是,该迭代会在带有内容的XML标记之后生成空XML标记。
Calc工作表如下所示:http://imgur.com/a/ALPX2(A行和B行可包含大量数据)
XSLT导出过滤器目前如下所示:http://pastebin.com/ugW9CuSw
结果如下:http://pastebin.com/HiYXFrAY
我认为我可以添加某种xsl:if,但我无法将其与select="table:table-row[n]/table:table-cell[m]"
上的概念结合起来。
所以也许有人知道是什么原因导致空XML标签或如何摆脱它们?
答案 0 :(得分:1)
我认为您需要从XPath教程开始学习如何编写谓词,例如将<xsl:for-each select="table:table-row[position() > 1]">
更改为<xsl:for-each select="table:table-row[position() > 1][table:table-cell]">
只会处理table-row
元素table-cell
子元素或<xsl:for-each select="table:table-row[position() > 1][table:table-cell[normalize-space()]]">
只会处理具有非空table-row
子元素的table-cell
元素。
我无法从电子表格应用程序的屏幕截图中看出这是输入XML数据的正确条件,但您可以自己查看XML并希望调整代码。