JXPath(1.3) - DOM/JDOM Document Access
2015-08-02 16:02
309 查看
除了 JavaBean,JXPath 也可以访问 DOM/JDOM。
示例 XML:
book.xml
DOM/JDOM Document Access
Getting a Value vs. Selecting a Node
JXPathContext 有两组相似的 API:getValue(xpath)/iterate(xpath) 和 selectSingleNode(xpath)/selectNodes(xpath)。对 JavaBeans 和类似的 Java 对象模型,这两组 API 是等效的。但是,对 DOM/JDOM,这两组 API 则有个不同的地方:selectSingleNode(xpath) 和 selectNodes(xpath) 返回的是 Nodes,而 getValue() 和 iterate(xpath) 返回的则是节点的文本内容。
例如,对于相同的 XPath,getValue("/book/isbn") 会返回字符串 "9787508353937",而 selectSingleNode("/book/isbn") 则返回 Element(<isbn>9787508353937</isbn>)(具体类型取决是 DOM 还是 JDOM)。
示例 XML:
<?xml version="1.0" encoding="utf-8"?> <book> <title>Head First Design Patterns</title> <authors> <author> <firstName>Eric</firstName> <lastName>Freeman</lastName> <gender>F</gender> <birthday>1976-09-14</birthday> </author> <author> <firstName>ElElisabeth</firstName> <lastName>Freeman</lastName> <gender>M</gender> <birthday>1983-03-27</birthday> </author> </authors> <publisher> <name>中国电力出版社</name> <address>北京市XX区YY路Z号</address> <contacts> <contact type='tel'>010-12345678</contact> <contact type='fax'>010-87654321</contact> <contact type='email'>test@163.com</contact> </contacts> </publisher> <isbn>9787508353937</isbn> <price>98</price> </book>
book.xml
DOM/JDOM Document Access
Document document = // get from book.xml ... JXPathContext context = JXPathContext.newContext(document); String aBirthday = (String) context.getValue("book/authors/author[firstName='ElElisabeth']/birthday"); String pEmail = (String) context.getValue("book/publisher/contacts/contact[@type='email']");
Getting a Value vs. Selecting a Node
JXPathContext 有两组相似的 API:getValue(xpath)/iterate(xpath) 和 selectSingleNode(xpath)/selectNodes(xpath)。对 JavaBeans 和类似的 Java 对象模型,这两组 API 是等效的。但是,对 DOM/JDOM,这两组 API 则有个不同的地方:selectSingleNode(xpath) 和 selectNodes(xpath) 返回的是 Nodes,而 getValue() 和 iterate(xpath) 返回的则是节点的文本内容。
例如,对于相同的 XPath,getValue("/book/isbn") 会返回字符串 "9787508353937",而 selectSingleNode("/book/isbn") 则返回 Element(<isbn>9787508353937</isbn>)(具体类型取决是 DOM 还是 JDOM)。
相关文章推荐
- ECLIPSE使用appcompat_v7库无法找到android:Widget.Material.ActionButton的问题
- 在Android项目中新建及添加Library
- OSG 视景器、漫游器、摄像机与场景的关系
- hdu 2588 GCD---欧拉函数
- 我看保护模式
- http://blog.csdn.net/uranus_wm/article/details/9838847
- 黑马Java EE面试总结
- 107.Binary Tree Level Order Traversal II
- ps绘制漂亮的晶莹剔透云朵方法
- hdu 5317
- POJ-1316
- AngularJs学习笔记__1、初步了解AngularJS
- [深入理解Android卷一全文-第六章]深入理解Binder
- Remove Element
- urllib2模块
- 简单md5加密
- 全志平台linux启动流程分析
- [leetcode-45]Jump Game II(c)
- vector用法
- STL中的set容器的一点总结