我正在使用xslt过滤器从Calc工作表导入/导出数据。是否可以引用特定的单元格地址?例如,如果我们要从单元格B2导出数据,我们如何在export xslt中引用此单元格地址?
答案 0 :(得分:0)
我不知道Openoffice或他们的xslt过滤器函数,我可以告诉你,你可能需要一个相当简单的XPath来引用一个特定的Cell数据 - 我怀疑它会像调用{{1}一样简单除非他们为你提供了一些自定义的xslt函数(我假设他们已经把你放在一个原始的XSLT环境中)。
无论如何,我认为这个问题可能更多地是关于XSLT和xpath,而不是关于openoffice。考虑到这一点,我将制作我自己的样本xml和示例,希望这足以让你开始。
对于看起来像这样的输入xml:
getCell('B2')
访问单元格B2数据的绝对XPath看起来像<ooo_calc_export>
<ooo_sheet num="1" name="sheet1">
<ooo_row num="2">
<fisrtCell>Oh</firstCell>
<secondCell>Hai</secondCell>
<thirdCell>There</thirdCell>
</ooo_row>
<ooo_row num="3">
<fisrtCell>Oh</firstCell>
<secondCell>Hello</secondCell>
<thirdCell>Back!</thirdCell>
</ooo_row>
</ooo_sheet>
</ooo_calc_export>
但是上面是绝对路径,在XSLT中,我们经常编写相对xpath,因为我们处理文档。想象一下,您所在的模板在ooo_calc_export/ooo_sheet/ooo_row[@num='2']/secondCell/text()
节点上匹配,并且您希望将Cell B2的数据存储在变量中供以后使用。考虑这个例子:
ooo_calc_export
现在假设你想要一个模板在单元格B2节点上匹配:
<xsl:template match="/ooo_calc_export">
<!-- a relative xpath does not being with a forward slash -->
<xsl:variable name="B2" select="ooo_sheet/ooo_row[@num='2']/secondCell/text()" />
</xsl:template>
这是good tutorial on XSLT,可以帮助您入门。此外,XPath和XSLT上的W3学校参考文献并不是最差的。