我想處理有哪幾種不同的狀態組像XSLT和臨時文件
<root>
<childgroup>16</childgroup>
<setstate>init</setstate>
<child1>...</child1>
<child2>...</child2>
<setstate>process<setstate>
<child2>...</child2>
<child3>...</child3>
.....
<childgroup>17</childgroup>
...
一個XML文件我需要的其實是得到類似
<childgroup no="16">
<state statename="init">
<child1>...</child1>
<child2>...</child2>
</state>
<state statename="process">
<child2>...</child2>
<child3>...</child3>
</state>
</childgroup>
<childgroup no="17">
...
我已經做了簡單的一部分並將「chgrpno」屬性和stateid屬性添加到所有子項(它使所有元素的副本,但是子組和副本的狀態,將屬性添加到這兩個元素中)
<xsl:template match="/">
<xsl:apply-templates mode="numb"/>
</xsl:template>
這樣做的結果是,所有的孩子都有屬性,所以我可以在下一關重新組合它們,並且州有數字,所以我以後可以做同樣的事情。但是,試圖跟隨M.Kay的例子有「臨時文件」當我嘗試做
<xsl:variable name="nmb">
<xsl:apply-templates mode="numb"/>
</xsl:variable>
<xsl:template match="/">
<xsl:copy-of select="$nmb"/>
</xsl:template>
那麼它只是返回原來的我,我在第一遍的所有變化都沒有了。那麼我在這裏做錯了什麼?
我明確地使用了XSLT 1.0,而不是XSLT 2.0。
(編輯:當然我命名變量,忘記複製它在這裏)。
問得好,+1。查看我的答案,瞭解XSLT 1.0中必需的RTF轉換爲臨時樹的解釋。此外,還提供了兩遍XSLT 1.0處理的完整代碼示例。 –