java 如何简单快速处理 xml 中的数据
关键词导读:XML Java解析XML 计算XML
Java有什么方便解析XML的类库吗?比如处理如下这段XML:
" ?>
lang</span>="<span class=SpellE>en</span>">Everyday Italian Giada De Laurentiis 2005 850 30.00
...
|
期望XML结构化后的效果:
Java一般用XPath来解析XML,由于不是集合性语言,写起来会比较长,且大量使用了接口,API也较为复杂。代码大概要写成这样:
... File file=new File("/workspace/bookstore.xml"); Document document=new SAXReader().read(file); public void test(){ List 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脚本有使用和获得它的方法。
关于集算器安装使用、获得免费授权和相关技术资料,可以参见如何使用集算器。