2013-07-01 41 views
1

我試圖通過XSLT修改Open Office writer文檔content.xml中的現有表(使用表格公式)。如何將xsl表達式結果分配給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 

好心幫我,謝謝。

回答

1

使用attribute value template,包裹在括號中的表達式:

<table:table-cell table:style-name="Table1.D1" office:value="1.79769313486232E+308" 
    office:value-type="float" table:formula="{concat(....)}"> 
+0

其工作。謝謝你的幫助 –