1
我有一個關於xslt的可能性的問題。可以用xslt完成下面的工作嗎?XSLT 1.0:不能在for-each中使用變量,還有其他方法可以解決這個例子嗎?
輸入:`
<invoice>
<record><field>ROWORD;123;;;</field></record>
<record><field>ROWART;shoe;10,2;20;</field></record>
<record><field>ROWORD;124;;;</field></record>
<record><field>ROWART;ball;1,5;2;</field></record>
<record><field>ROWART;car;1000;1;</field></record>
<record><field>ROWART;tractor;900;2;</field></record>
<record><field>ROWORD;125;;;</field></record>
<record><field>ROWART;computer;100;200;</field></record>
<record><field>ROWART;shoes;10,2;20;</field></record>
<record><field>ROWORD;126;;;</field></record>
<record><field>ROWART;keyboard;100;1;</field></record>
</invoice>
輸出應爲:
<article>
<description>shoe</description>
<price>10,2</price>
<ordernumber>123</ordernumber>
<article>
<description>ball</description>
<price>1,5</price>
<ordernumber>124</ordernumber>
<article>
<description>car</description>
<price>1000</price>
<ordernumber>124</ordernumber>
<article>
<description>tractor</description>
<price>900</price>
<ordernumber>124</ordernumber>
<article>
<description>computer</description>
<price>100</price>
<ordernumber>125</ordernumber>
<article>
<description>shoe</description>
<price>10,2</price>
<ordernumber>125</ordernumber>
<article>
<description>keyboard</description>
<price>100</price>
<ordernumber>126</ordernumber>
我用for-each來循環記錄。然後,我將標記字段拆分爲單獨的變量(使用substring-before/substring-after)。用if語句檢查標籤字段是否開始 - 使用ROWART,但是我遇到了問題。我無法找到找到響應訂單號的方法。
所以,我正在尋找一種方法來記住ROWORD。
也許我的想法使用xslt有問題。 我使用xslt 1.0。輸入無法更改。
感謝您的幫助 奧利維爾
因人而異,如果我能相信這個博客帖子:使用XPath的「前同輩」正確軸(http://www.infopathdev.com/blogs/greg/archive/ 2005/06/13 /使用-XPath_2700_s-_2700_preceding_2D00_sibling_2700_軸Correctly.aspx) – mousio 2011-03-10 11:09:08