2009-11-14 74 views
1

我想根據它們的節點對XML文檔進行排序。什麼是有效的分類方法?如何在Java中對XML元素進行排序?

+0

描述你能告訴我們你的XML文檔的樣子,你想如何排序? – dogbane 2009-11-14 08:30:27

+0

您正在輸出文檔,或者您有準備好的文檔並且必須輸出它?結構是否平坦?你想僅對頂級節點進行排序嗎?按什麼標準 - 節點名稱,屬性,節點內容? – Bozho 2009-11-14 08:31:08

+0

我的意思是我想排序java中的xml元素。例如,在書目數據中,xml文檔按「標題」元素/節點排序。 – thandar 2009-12-11 08:58:33

回答

2

由於XML元素沒有自然的排序順序,我不知道任何提供排序元素的XML解析器。這是因爲在XMl規範中,元素的排序順序很重要,因此,解析任意大小的XML的代碼不應該對元素的順序進行任何假設。

如果你需要排序的元素,你將不得不使用你最喜歡的XML解析器來解析XML文檔並自己排序。或者,您可以使用XSLT對文檔進行排序。

2

的替代XSLT的辦法就是寫這種種指定節點的孩子們在下降或使用指定的比較升序自己的實用方法的XML文檔的節點進行排序。

public static void sortChildNodes(Node node, Comparator comparator, boolean descending) { 

} 
0

我強烈建議你學習XSLT,因爲它是非常適合用於處理XML文檔,包括排序等Java有文件和文件在內存中的結構乳寧XSLT作爲標準運行的一部分,良好的支持圖書館。

 <xsl:sort select="..."/> 

的用法以及在http://www.xml.com/pub/a/2002/07/03/transform.html

+0

感謝您的建議,我在eclipse IDE中使用java。 那麼如何運行這個xsl文件。 – thandar 2009-12-11 09:04:32

+1

爲文件類型爲「XSL」的XSLT文件命名,即「test.xsl」。 然後您可以右鍵單擊並選擇「運行方式」 - >「XSL轉換」來執行xslt轉換。從文檔中我明白,如果將XSL首選項窗格中的XSLT處理器更改爲Xalan,則甚至可以調試XSLT過程。 我正在使用Eclipse JEE。它可能在其他Eclipse版本中不可用。 – 2009-12-14 09:10:42

相關問題