下面是详细的攻略:
一、什么是DOM4j
DOM4j是一个Java的XML解析库,它提供了一种方便的处理XML文档的方式。它是jdom的升级版,解决了jdom的某些性能和扩展性问题。DOM4J 支持 SAX2 和 XPATHAPI技术,它允许直接读取 XML 文件、DTD 文件以及 XSD 文件,并将其解析为元素(Element)、属性(Attribute)、文本、注释、CDATA 部分和处理指令等标签。它不仅支持生成 XML 文件,还可以对 XML 文件进行各种操作。
二、使用DOM4j实现读取XML文件
- 导入基础依赖包
DOM4j的使用需要导入其依赖包。以Maven为例,在pom.xml文件中添加以下依赖:
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
- 解析XML文件
DOM4j的org.dom4j包中提供了SAXReader类,该类可以很容易地将XML文件解析成一棵树结构。
示例代码:
public class DomUtils {
//读取xml文件
public static Document read(String path) throws DocumentException {
InputStream is = DomUtils.class.getClassLoader().getResourceAsStream(path);
SAXReader reader = new SAXReader();
Document document = reader.read(is);
return document;
}
}
解析过程说明:
- 使用ClassLoader加载指定的资源文件,生成InputStream对象。
- 构建一个SAXReader对象,用于读取XML文件。
-
通过SAXReader的read方法解析XML文件,并返回一个Document对象。
-
访问XML文件
解析XML文件后,通过Document对象就可以访问XML文件的内容,包括元素、属性、文本节点等。遍历Document对象,获取其中的属性或元素。
示例代码:
public static void readElement(String path) throws DocumentException {
Document doc = read(path);
Element root = doc.getRootElement();
Element e1 = root.element("student");
String name = e1.attributeValue("name");
String id = e1.attributeValue("id");
System.out.println("学生姓名:" + name);
System.out.println("学生ID:" + id);
}
解析过程说明:
- 调用read方法获得解析后的Document对象。
- 从Document对象中获取根节点元素。
- 获取XML文件中的元素属性
- 输出结果
三、使用DOM4j实现写入XML文件
- 创建XML文件
DOM4j的org.dom4j包中提供了DocumentHelper类,该类可以很容易地创建一个新的XML文档、元素、属性等。
示例代码:
public static Document createDocument() {
// 创建一个XML文档
Document doc = DocumentHelper.createDocument();
// 创建根节点
Element root = doc.addElement("school");
// 在根节点下添加元素
Element student = root.addElement("student");
student.addAttribute("id", "1001");
student.addAttribute("name", "张三");
return doc;
}
解析过程说明:
- 调用DocumentHelper的createDocument方法创建一个空白的文档对象。
- 使用addElelement方法添加根节点。
- 使用addElement方法添加元素。
-
使用addElement方法为元素添加属性,setAttributeValue方法也可以设置属性值。
-
写入XML文件
解析XML文件后,通过Document对象就可以访问XML文件的内容,包括元素、属性、文本节点等。遍历Document对象,获取其中的属性或元素。
示例代码:
public static void write(String path) throws IOException {
OutputStream os = new FileOutputStream(path);
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(os, format);
// 调用createDocument()方法获取创建后的XML文档对象
Document document = createDocument();
// 把XML文档对象写入文件中
writer.write(document);
writer.flush();
writer.close();
}
解析过程说明:
- 调用createDocument()方法创建XML文档对象。
- 创建一个输出流和XML文件的名称相同,用来存放XML文件
- 创建一个输出格式对象
- 创建xml认证方法(XMLWriter),使用createPrettyPrint方法格式化输出
- 把XML文档对象直接写入文件中
到此,我们的“Java使用DOM4j实现读写XML文件的属性和元素”的攻略完结。
参考链接:https://my.oschina.net/u/3755578/blog/1836597
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java使用DOM4j实现读写XML文件的属性和元素 - Python技术站