XPath 是通过元素和属性进行查找
XPath简化了Dom4j查找节点的过程
学习XPath是为了更快更好地选取我们想要选取的XML元素。
使用XPath必须导入jaxen-1.1-beta-6.jar
否则出现NoClassDefFoundError: org/jaxen/JaxenException
查询节点:
获取所有符合条件的节点
selectNodes(String xpathExpression) 返回List集合
获取符合条件的单个节点
selectSingleNode(String xpathExpression) 返回一个Node对象。
如果符合条件的节点有多个,那么返回第一个。
XPath语法:
1. / 绝对路径 表示从xml的根位置开在哪始或子元素(一个层次结构)
2. // 相对路径 表示不分任何层次结构的选择元素
3. * 通配符 表示匹配所有元素
4. [] 条件 表示选择什么条件下的元素
5. @ 属性 表示选择属性节点
6. and 关系 表示条件的与关系(等价于@@)
7. text() 文本 表示选择文本内容
运行结果:
org.dom4j.tree.DefaultElement@5b40c349 [Element: <student1 attributes: [org.dom4j.tree.DefaultAttribute@78d51c6c [Attribute: name id value "001"], org.dom4j.tree.DefaultAttribute@6f3d346d [Attribute: name name value "zhangsan"]]/>]
org.dom4j.tree.DefaultElement@1b3d1929 [Element: <student1 attributes: [org.dom4j.tree.DefaultAttribute@483ee0b7 [Attribute: name id value "002"], org.dom4j.tree.DefaultAttribute@1813336f [Attribute: name name value "lisi"]]/>]
org.dom4j.tree.DefaultElement@1495c8c2 [Element: <student1 attributes: []/>]
org.dom4j.tree.DefaultElement@ef2625f [Element: <name attributes: []/>]
运行结果:
org.dom4j.tree.DefaultElement@78d51c6c [Element: <student1 attributes: [org.dom4j.tree.DefaultAttribute@6f3d346d [Attribute: name id value "001"], org.dom4j.tree.DefaultAttribute@1b3d1929 [Attribute: name name value "zhangsan"]]/>]
org.dom4j.tree.DefaultElement@483ee0b7 [Element: <student1 attributes: [org.dom4j.tree.DefaultAttribute@1813336f [Attribute: name id value "002"], org.dom4j.tree.DefaultAttribute@1495c8c2 [Attribute: name name value "lisi"]]/>]
org.dom4j.tree.DefaultElement@75af431c [Element: <student1 attributes: []/>]
org.dom4j.tree.DefaultElement@4b1852a3 [Element: <name attributes: []/>]