第三天【DOM4J Xpath】
一、DOM4J解析XML文件
CURD操作
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("文件路径"));
Element rootElement = document.getRootElement();
List<Element> elementList = rootElement.elements();
element = elementList.get(1);// 获得root元素的第二个子元素
注意:将元素插入指定位置,必须使用DocumentHelper.createElement创建元素,不能基于rootElement创建,会报异常。
其他常用的API思想:
将字符串转换为document对象,用DocumentHelper.parseText(字符串);
将document对象或元素转换为字符串,用asXML()方法;
创建空的document对象:DocumentHelper.createDocument();
二、基于DOM4J的Xpath技术 导入jaxen的jar包
Xpath就是一段有规则的字符串,有些类似于正则表达式,它就是为了快速定位到任意标签而生的。
常用API:
Element element = (Element) document.selectSingleNode(xpath);取得符合xpath规则的单个元素节点
List<Element> elementList = document.selectNodes(xpath);取得符合xpath规则的多个元素节点
详细的xpath编写,参考文档
String xpath = "/address/province[@name='广西区']" ; //获得name属性为'广西区'的 proviince元素
String xpath = "/address/province[@name='广西区']/city"; //获得name属性为'广西区'的 proviince元素的所有city节点
String xpath = "/address/province"; //获得所有province节点
String xpath = "/address/@name"; //获得name属性节点
String xpath = "/address/province[1]"; //获得第二个province节点