2012-06-11 27 views
3

最近我必須對XML文檔進行一些數據挖掘。它大部分是臨時的,即我沒有事先提供這些文檔的模式,而且我只運行查詢幾次。一些示例查詢是「多少個元素具有大於0的這個子元素值」或「根據某種元素,它們的一些子元素的值的總和是多少」。在Java中運行這樣的查詢是非常困難的,因爲(a)Java DOM處理非常麻煩,並且(b)我只需要運行這些查詢幾次,而不是作爲應用程序的一部分。用於即席XML查詢的現代語言?

這種情況下推薦的和當前支持的查詢語言和工具是什麼?最好是交互式,免費/開放源代碼,並且不要求事先將文檔存儲在數據庫中(儘管它是一種選擇)。

+0

根據我的說法,LINQ可以很好地完成這項工作! http://en.wikipedia.org/wiki/Linq –

+0

我刪除了不適當的標籤數據挖掘。問題中沒有數據挖掘,這只是關於XML查詢。沒有高級分析發生在這裏。 –

回答

2

您需要XQuery。它是由容易地查詢XML目的,如可以從報價上XQuery homepage被讀取:

的XQuery與的幾行代碼替換複雜Java或C++ [XML處理]程序。

我使用開源程序BaseX來輕鬆查詢(大集合的)XML文件。它還具有很好的XML結構的交互式可視化。

+0

BaseX很棒!感謝您的建議 – Vijay

1

聽起來像是對XQuery的描述。

例子查詢

count(//element[sub-element gt 0]) 

//some-element/sum(sub-element) 

其實這兩個都是XPath 2.0中,這是一個子集的XQuery 1.0的,但你可能會想的XQuery 1.0早晚,它比XPath的廣泛實施2.0,所以去吧。有充足的XQuery處理器可以在Java環境中工作,無論有沒有XML數據庫。我自己的撒克遜產品就是一個例子。