1

我正在尝试通过 XSLT 修改 Open office writer 文档的 content.xml 的现有表(使用表公式)。

表格公式是一个属性值,如table:formula="ooow:sum<A1:C1>"。当节点出现在 xsl:for-each 中时,行值会增加(在输出 XML 中)直到源 XML 的 no-of 元素。所以公式总是只引用结果 XML 中的第一行值。我想通过 XSLT 表达式修改单元格引用。

<xsl:for-each select="some xpath">
<table:table-row>
    <table:table-cell table:style-name="Table1.A1"><text:p text:style-name="Table_20_Contents">10</text:p></table:table-cell>
    <table:table-cell table:style-name="Table1.B1"><text:p text:style-name="Table_20_Contents">5</text:p></table:table-cell>
    <table:table-cell table:style-name="Table1.C1"><text:p text:style-name="Table_20_Contents">7</text:p></table:table-cell>
    <table:table-cell table:style-name="Table1.D1" office:value="1.79769313486232E+308" office:value-type="float" table:formula="ooow:sum<A1:C1>">
        <text:p text:style-name="Table_20_Contents">22</text:p>
    </table:table-cell>
</table:table-row>

我们如何分配 xslt 表达式,如

concat('ooow:sum A',position(), ':C', position(), '>') to XML attribute

请帮助我,在此先感谢。

4

1 回答 1

1

使用属性值模板,将表达式括在大括号中:

<table:table-cell table:style-name="Table1.D1" office:value="1.79769313486232E+308"
   office:value-type="float" table:formula="{concat(....)}">
于 2013-07-01T09:52:34.077 回答