1
我想問如何在從另一個xml文件複製模板時如何重新計算行號位置和其他數據,如果滿足條件代碼應該與lookup.xml中的代碼相同。如何在重新計算位置時複製模板
我的節目看起來像:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="node()|@*">
<xsl:copy>
<xsl:apply-templates select="node()|@*"/>
</xsl:copy>
</xsl:template>
<xsl:template match="Line-Item[code = document('lookup.xml')/*/*/code]" />
<xsl:template match="Line[not(Line-Item/code[not(. = document('lookup.xml')/*/*/code) ])]"/>
</xsl:stylesheet>
XML文件:
<document>
<header>
<remarks>test</remarks>
</header>
<Line>
<Line-Item>
<lineNumb>1</lineNumb>
<code>123</code>
<amount>4</amount>
</Line-Item>
<Line-Item>
<lineNumb>2</lineNumb>
<code>444</code>
<amount>2</amount>
</Line-Item>
<Line-Item>
<lineNumb>3</lineNumb>
<code>321</code>
<amount>1</amount>
</Line-Item>
</Line>
<summary>
<total-line>3</total-line>
<total-amount>7</total-amount>
</summary>
</document>
Lookup.xml文件:
<lookup>
<Codes>
<code>123</code>
</Codes>
</lookup>
我需要行項目重新計算lineNumb和彙總有總額和總額。
正確的結果:
<document>
<header>
<remarks>test</remarks>
</header>
<Line>
<Line-Item>
<lineNumb>1</lineNumb>
<code>444</code>
<amount>2</amount>
</Line-Item>
<Line-Item>
<lineNumb>2</lineNumb>
<code>321</code>
<amount>1</amount>
</Line-Item>
</Line>
<summary>
<total-line>2</total-line>
<total-amount>3</total-amount>
</summary>
</document>
您好測試,但lineNumb不重新計算。我的意思是lineNumb的位置= 2和3,那麼應該是1和2,因爲我們先刪除。 – Petras 2011-05-19 16:03:36
對不起,沒有看到特別的:)。我會盡快嘗試。 – 2011-05-19 16:51:15
答案現在包括'lineNumb'重新計算。希望這是你需要的。 – 2011-05-19 18:28:51