通过dom4j来生成/解析XML文档。简单的说,只要我们熟练运用API即可完成。
不论是JDOM还是dom4j,我们都可以从三个方面入手:元素,属性,文本。
一、使用dom4j来生成XML文档
- 毋庸置疑,第一步我们必须生成对应的Document对象,以及根元素。(通过查阅API,我们可以看到DocumentHelper类中createDocument方法有一个重载方法,所以我们这里有两种方式来完成这一步)
//方式一:
Document document = DocumentHelper.createDocument();
Element root = DocumentHelper.createElement("根元素名");
document.setRootElement(root);
//方式二:
Element root = DocumentHelper.createElement("根元素名");
Document document = DocumentHelper.createDocument(root);
- 向元素中添加子元素
//调用Branch接口(Element接口的父接口)中的addElement(String name);方法,该方法返回类型为
Element,即返回新添加的元素节点
element.addElement("新添加的子元素名");
- 元素不包含子元素,向元素中添加文本信息
//调用Element接口的addText(String text);方法,该方法返回类型为Element
element.addText("文本内容");
- 给元素添加对应属性
//调用Element接口的addAttribute(String name, String value);方法,返回类型为Element
element.addAttribute("对应属性名", “对应属性值”);
- 输出生成的XML(主要使用XMLWriter类)
//输出到控制台
XMLWriter xmlWriter = new XMLWriter();
xmlWriter.writer(document);
//输出到硬盘文件(这里有两种方式)
//方式一:
XMLWriter xmlWriter = new XMLWriter(OutputStream out);
xmlWriter.write(document);
//方式二:
XMLWriter xmlWriter = new XMLWriter(Writer writer);
xmlWriter.write(document);
xmlWriter.flush(); //这里也可以调用close()方法。
二、使用dom4j解析XML文档
- 获得对应的Document对象,以及根元素
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new FileInputStream("对应的物理路径"));
Element root = document.getRootElement();
- 解析出对应子元素
List list = element.elements("元素名");
Iterator iter = element.elementIterator("元素名");
//然后遍历即可得到对应元素
- 纯文本元素解析出其文本内容
String str = element.getText();
- 解析出属性及其属性值
Attribute attr = element.attribute("属性名");
String value = attr.getValue();
- 我们也可以将JAXP中Document转换为dom4j中的Document
//得到JAXP中的Document对象
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
org.w3c.dom.Document doc = db.parse(new File(”对应的物理路径“));
//转换
DOMReader reader = new DOMReader();
Document document = reader.read(doc);
有争议的地方欢迎批评指正,共同进步。
版权声明:本文为qq_41667758原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。