我有一個XML文件,其內容我想按文檔順序排序(基本上是按照項目寫出的順序)。XSL按位置排序()給出奇怪的結果
我目前使用以下代碼:
<xsl:template match="/Error">
<xsl:apply-templates>
<xsl:sort select="position()" order="descending" />
</xsl:apply-templates>
</xsl:template>
<xsl:template match="/Error/Warning">
<!-- etc -->
</xsl:template>
實施例XML(數據替換爲了便於閱讀):
<Error>
<Warning data="stuff" timestamp="08:26:17 2010/08/01">CODE.1</Warning>
<Clear data="stuff" timestamp="08:26:36 2010/08/01">CODE.2</Clear>
<Warning data="stuff" timestamp="08:36:00 2010/08/01">CODE.3</Warning>
<Clear data="stuff" timestamp="08:36:56 2010/08/01">CODE.4</Clear>
<Warning data="stuff" timestamp="08:40:31 2010/08/01">CODE.5</Warning>
</Error>
然而,這似乎給奇怪的結果,因爲它似乎是沒有特別的順序!有任何想法嗎?
刪除排序似乎使它正常工作 - 這是否可靠地命令它在寫入順序或不能保證?
您不提供有問題的輸出,也不能解釋您未顯示的輸出有什麼問題。此外,您不指定真正需要排序的內容。這個問題是不完整的和未定義的。請糾正你的問題。 – 2010-08-09 11:53:06
它看起來像你的模式是錯誤的,它應該是'ErrorLog/Warning'。你也是按文件順序排序,所以沒有必要這樣做。 – 2010-08-09 12:44:14
@Dimitre輸出結果是隨機排列的,我不覺得這很重要嗎? - 更新的問題,使其更清晰 @Alejandro我想要命令''內的所有東西。下面的Paul Butchers迴應對我所需要的很好。 –
Chris
2010-08-09 14:18:14