java 如何簡單快速處理 xml 中的數據

Java有什麼方便解析XML的類庫嗎?比如處理如下這段XML:

<?xml version="1.0" encoding="utf-8" ?>

<bookstore>

 <book category="COOKING">

   <title lang="en">Everyday Italian</title>

   <author>Giada De Laurentiis</author>

   <year>2005</year>

   <quantity>850</quantity>

   <price>30.00</price>

 </book>

...

</bookstore>

期望XML結構化後的效果:

 

Java一般用XPath來解析XML,由於不是集合性語言,寫起來會比較長,且大量使用了接口,API也較爲複雜。代碼大概要寫成這樣:

...

File file=new File("/workspace/bookstore.xml");

Document document=new SAXReader().read(file);

public void test(){

List<Node> nodes = document.selectNodes("bookstore/book");

for(Node node:nodes){

                 System.out.println(node.getText());

        }

}

...

XML解析,用集算器SPL會簡單很多,它把 XPath 做了封裝,且有豐富強大的集合運算能力,所以很容易應對。比如上面問題僅需2行:

 

A

1

=xml@s(file("/workspace/book.xml").read()).bookstore

2

=A1.new(category,book(1).title,book(1).lang,book(2).author,book(3).year,book(4).quantity,book(5).price)

XML解析出來一般都是爲了計算,所以SPL還能更方便地計算,比如:統計每年的圖書銷售額;只需在此基礎上增加1行:=A2.groups(year;sum(quantity*price):amount)

其實還有很多情況用Java解析XML不太方便,但用集算器SPL卻很簡單,感興趣可以參考:XML數據解析與計算

集算器還很容易嵌入到Java應用程序中,Java如何調用SPL腳本有使用和獲得它的方法。

關於集算器安裝使用、獲得免費授權和相關技術資料,可以參見如何使用集算器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章