美文网首页我爱编程
使用Dom4j方式来解析XML类型文件

使用Dom4j方式来解析XML类型文件

作者: 祝汉宇 | 来源:发表于2017-12-27 20:30 被阅读0次

解析XML的方式有很多,今天我们就用Dom4j方式来解析XML文件   我们需要完成以下几个步骤

1、环境准备

(1)下载dom4j-1.6.1.jar

(2)下载junit-4.10.jar

2、温馨提示

解析XML过程是通过获取Document对象,然后继续获取各个节点以及属性等操作,因此获取Document对象是第一步,大体说来有三种方式:

(1)  自己创建Document对象

Document document = DocumentHelper.createDocument();

Element root = document.addElement("students");

其中students是根节点,可以继续添加其他节点等操作

(2)  读取XML文件获取Document对象

//创建SAXReader对象  

SAXReader reader =new SAXReader();  

//读取文件 转换成Document  

Document document = reader.read(new File("XXXX.xml"));  

(3)读取XML文本内容获取Document对象

String xmlStr = "......";  

Document document = DocumentHelper.parseText(xmlStr);  

3、示例

(1)   xml文件内容如下

<?xml version="1.0" encoding="UTF-8"?>

<Student>

<姓名>祝汉宇

<年龄>21

<学号>1508300059

<地址>江苏省苏州市昆山巴城镇

<座右铭>要么强大,要么听话  

</Student>

(2)   解析过程

package com.briup.Dom;  

import java.io.File;  

import java.util.Iterator;  

import java.util.List;  

import org.dom4j.Attribute;  

import org.dom4j.Document;  

import org.dom4j.Element;  

import org.dom4j.io.SAXReader;  

import org.junit.Test;  

public class Dom4JforXML {  

public void test() throws Exception {  

//创建SAXReader对象  

SAXReader reader =new SAXReader();  

//读取文件 转换成Document  

Document document = reader.read(new File("src/cn/com/yy/dom4j/s.xml"));  

//获取根节点元素对象  

Element root = document.getRootElement();  

//遍历  

 listNodes(root);  

 }  

//遍历当前节点下的所有节点  

public void listNodes(Element node) {  

System.out.println("当前节点的名称:" + node.getName());  

//首先获取当前节点的所有属性节点  

 List list = node.attributes();  

//遍历属性节点  

for(Attribute attribute : list) {  

System.out.println("属性"+attribute.getName() +":" + attribute.getValue());  

}  

//如果当前节点内容不为空,则输出  

if(!(node.getTextTrim().equals(""))) {  

System.out.println( node.getName() +":" + node.getText());    

 }  

//同时迭代当前节点下面的所有子节点  

//使用递归  

Iterator iterator = node.elementIterator();  

while(iterator.hasNext()) {  

Element e = iterator.next();  

 listNodes(e);  

}  

}  

}  

(3)   解析结果

当前节点的名称:student

当前节点的名称:姓名

姓名:祝汉宇 

当前节点的名称:年龄

年龄:21

当前节点的名称:学号 

学号:1508300059

当前节点的名称:地址

地址:江苏省苏州市昆山巴城镇

当前节点的名称:座右铭  

座右铭:要么强大,要么听话

因为涉及到中文,所以在输出时要设定UTF-8编码,OutputStreamWriter进行设置编码

还有输出格式的问题,在此处使用的是OutputFormat.createPrettyPrint(),输出文档时进行了排版格式化。还有一种是OutputFormat.createCompactFormat()方法,输出内容是一行,没有进行格式化,是紧凑型的输出

已经总结完了,如有不足还望多多指点,谢谢!

相关文章

  • 使用Dom4j方式来解析XML类型文件

    解析XML的方式有很多,今天我们就用Dom4j方式来解析XML文件 我们需要完成以下几个步骤 1、环境准备 (1...

  • XML解析

    XML解析方式? Dom4j、Sax、Pull Dom4j与Sax区别 dom4j不适合大文件的解析,因为它是一下...

  • 在Java中使用dom4j来解析及生成xml文件

    title: 在Java中使用dom4j来解析及生成xml文件tag: Java之xmlcategories: J...

  • 遇到的问题

    Dom4J 使用Dom4J解析XML文件时,遇到&时,程序异常信息“Error on line 1 of docu...

  • XML解析

    dom4j 元素 解析xml文件 获取根节点 遍历 查 保存 添加 删除 改 XPath 使用XPath对xml文...

  • XML解析

    一、XML解析 XML解析共有4种方式,分别是DOM,SAX,DOM4J,JDOM,以下只介绍DOM和DOM4J的...

  • XML解析与JPA

    1、xml解析 xml解析总共有四种方式,我在这里只介绍两种方式:原生的和使用dom4j的方式 students....

  • Java学习阶段四【web基础技术】

    Xml技术; 使用jdom和dom4j来对xml文档的解析和生成操作,xml的作用和使用场合。 html/css;...

  • XML 解析

    XML三种解析方式: 下面简单说明下三种解析方式的使用 XML文件 新建xml文件food.xml 三种解析方式 ...

  • Java 学习笔记

    Java学习过程 spring IOC的实现过程 1、配置文件xml 2、使用dom4j 解析配置文件+ 工厂模式...

网友评论

    本文标题:使用Dom4j方式来解析XML类型文件

    本文链接:https://www.haomeiwen.com/subject/cuhpgxtx.html