我正在尝试通过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
请帮助我,提前谢谢。
答案 0 :(得分:1)
使用attribute value template,将表达式包装在大括号中:
<table:table-cell table:style-name="Table1.D1" office:value="1.79769313486232E+308"
office:value-type="float" table:formula="{concat(....)}">