java 如何簡單快速處理 xml 中的資料

xiaohuihui發表於2020-06-28

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 如何簡單快速處理 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卻很簡單,感興趣可以參考: 。

集算器還很容易嵌入到Java應用程式中, 有使用和獲得它的方法。

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

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69900830/viewspace-2700775/,如需轉載,請註明出處,否則將追究法律責任。

相關文章