标题简介:
dom4j是一个叫dom4j的组织开发的用于解析xml的工具,开源的.
dom4j不是java自有功能,需要另外导包.
dom4j非常方便的对xml进行解析和增删查改操作,常用来对配置文件进行操作.
dom4j支持dom解析和sax解析方式.
常用方法:
// 获取解析器
SAXReader saxReader = new SAXReader();
// 获取文档
Document document = saxReader.read(“dom4j/person.xml”);
// 获取根元素
Element root = document.getRootElement();
Element的常用方法
List element.elements(""):获取所有的直接子元素
Element element.element(“name”):获取第一个名为name的直接子元素
List element.elements(“name”):获取名为name的直接子元素集合
element.addElement(“sex”):添加元素名为sex的子元素
element.setText(“文本内容”):设置该元素的值
element.getText():获取该元素的文本值
element.getParent().remove(element):通过获取父元素删除元素.
element.add(Attribute):添加属性
element.add(Text):添加文本
element.attribute(int):获取第几个属性
element.attribute(String):通过属性名获取属性
element.attributeValue(String) String:通过属性名获取属性值
Document工具类:DocumentHelper
Element createElement = DocumentHelper.createElement(“name”):创建name元素
DocumentHelper.createAttribute(createElement, “age”, “20”):在createElement创建属性age,值为20
DocumentHelper.createText(“20”):创建文本20
将修改的xml输出到文件中
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(“dom4j/person3.xml”));
将修改的xml输出到文件中,带格式输出,createPrettyPrint为带缩进输出,createCompactFormat为紧凑不缩进输出
OutputFormat还可以设置一些输出参数,如编码格式.
OutputFormat format = OutputFormat.createPrettyPrint();
OutputFormat format = OutputFormat.createCompactFormat();
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(“dom4j/person3.xml”), format);
执行写操作
xmlWriter.write(document);
XMLWriter也是一种流,需要关闭以释放资源
xmlWriter.close();
Dom4j对XPath的支持
需要另外支持包,如:jaxen-1.1-beta-6.jar
返回xpath表达式的所有元素
List document.selectNodes(表达式);
返回xpath表达式的一个元素
document.selectSingleNode(表达式);
xpath表达式
/:根节点
//:文档中所有节点匹配条件
.:当前节点
…:父节点
@:属性
通配符:
:所有节点
@:所有属性
node():任何节点
/AAA/BBB/CCC:根目录下AAA元素下的BBB元素下的CCC元素
//AAA:所有AAA元素
//name[@id]:具有id属性的所有name元素
//name[@id=‘ls’]:具有id属性并且值为ls的所有name元素
//name[1]:第一个name属性
//name[last()]:最后一个name属性
具体可以参考w3cSchool中XPath的语法:
https://www.w3school.com.cn/xpath/xpath_syntax.asp
来源:CSDN
作者:Student108
链接:https://blog.csdn.net/Student108/article/details/103955905