Dom4j 封装DOM的解析XML文件的方法:

 List<Book> bookList=new ArrayList<Book>();
//1.1 建立一个解析器工厂:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
//1.2 获得一个DocumentBuilder对象,这个对象代表了具体的DOM解析器
DocumentBuilder db = dbf.newDocumentBuilder();
//1.3 将xml文件加载到内存中,得到表示整个文档的Document对象
InputStream inStream=DomParser.class.getClassLoader().getResourceAsStream("book.xml");
org.w3c.dom.Document w3cdoc=db.parse(inStream);
//2.创建一个DOMReader
DOMReader domReader=new DOMReader();
//3.将org.w3c.dom.Document转成org.dom4j.Document
org.dom4j.Document doc=domReader.read(w3cdoc);
Element ele=doc.getRootElement();//3.获得根节点
//4.使用迭代器对子节点进行迭代
Iterator<Element> it=ele.elementIterator();
while(it.hasNext()){
Book book=new Book();
Element bookEle=it.next();//取出当前的迭代的元素
book.setId(bookEle.attributeValue("id"));//attributeValue:根据属性名获得属性值
book.setName(bookEle.element("name").getText());
book.setAuthor(bookEle.elementText("author"));
bookList.add(book);

Dom4j 封装SAX的解析XML文件的方法:

        List<Book> bookList=new ArrayList<Book>();
InputStream inStream=DomParser.class.getClassLoader().getResourceAsStream("book.xml");
SAXReader saxReader=new SAXReader();//1. 创建sax解析器
org.dom4j.Document doc=saxReader.read(inStream);//2. 获得org.dom4j.Document文档对象
Element ele=doc.getRootElement();//3.获得根节点
//4.使用迭代器对子节点进行迭代
Iterator<Element> it=ele.elementIterator();
while(it.hasNext()){
Book book=new Book();
Element bookEle=it.next();//取出当前的迭代的元素
book.setId(bookEle.attributeValue("id"));//attributeValue:根据属性名获得属性值
book.setName(bookEle.element("name").getText());
book.setAuthor(bookEle.elementText("author"));
bookList.add(book);

Dom4j 生成XML文件

 import java.io.FileWriter;

 import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.XMLWriter;
/**
* dom4j
* @author bwf
*
*/
public class TestDom4j2 {
public static void main(String[] args) throws Exception { //创建Document
Document dom=DocumentHelper.createDocument();
//创建根节点
Element root=dom.addElement("我爱吃水果");
//创建元素,并附加属性
Element item1=root.addElement("水果").addAttribute("编号", "001");
Element name1=item1.addElement("名字").addText("苹果"); Element item2=root.addElement("水果").addAttribute("编号", "002");
Element name2=item2.addElement("名字").addText("柚子"); Element item3=root.addElement("水果").addAttribute("编号", "003");
Element name3=item3.addElement("名字").addText("草莓"); //美化格式
OutputFormat format = OutputFormat.createPrettyPrint();
//文件
FileWriter w=new FileWriter("c:/Users/bwf/Desktop/food.xml");
//输出流
XMLWriter writer =new XMLWriter(w,format); writer.write(dom);
writer.close();
}
}

Dom4j 封装DOM和SAX 的方法的更多相关文章

  1. iOS开发中XML的DOM和SAX解析方法

    一.介绍 dom是w3c指定的一套规范标准,核心是按树形结构处理数据,dom解析器读入xml文件并在内存中建立一个结构一模一样的“树”,这树各节点和xml各标记对应,通过操纵此“树”来处理xml中的文 ...

  2. DOM、SAX、JDOM、DOM4J四种XML解析方法PK

    基础方法(指不需要导入jar包,java自身提供的解析方式):DOM.SAXDOM:是一种平台无关的官方解析方式   --优点:          (1)形成了树结构,直观好理解,代码更易编写     ...

  3. dom4j的测试例子和源码详解(重点对比和DOM、SAX的区别)

    目录 简介 DOM.SAX.JAXP和DOM4J xerces解释器 SAX DOM JAXP DOM解析器 获取SAX解析器 DOM4j 项目环境 工程环境 创建项目 引入依赖 使用例子--生成xm ...

  4. java中四种操作(dom、sax、jdom、dom4j)xml方式详解与比较

    1)DOM(JAXP Crimson解析器)     DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准.DOM是以层次结构组织的节点或信息片断的集合.这个层次结构允许开发人员在树中寻找特 ...

  5. java操作xml方式比较与详解(DOM、SAX、JDOM、DOM4J)

    java中四种操作(DOM.SAX.JDOM.DOM4J)xml方式的比较与详解     1)DOM(JAXP Crimson解析器) DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准. ...

  6. XML解析【介绍、DOM、SAX详细说明、jaxp、dom4j、XPATH】

    什么是XML解析 前面XML章节已经说了,XML被设计为"什么都不做",XML只用于组织.存储数据,除此之外的数据生成.读取.传送等等的操作都与XML本身无关! XML解析就是读取 ...

  7. java xml解析方式(DOM、SAX、JDOM、DOM4J)

    XML值可扩展标记语言,是用来传输和存储数据的. XMl的特定: XMl文档必须包含根元素.该元素是所有其他元素的父元素.XML文档中的元素形成了一颗文档树,树中的每个元素都可存在子元素. 所有XML ...

  8. XML解析之DOM详解及与SAX解析方法的比较

    XML解析(DOM) XML文件解析方法介绍 我们所用到的NSXMLParser是采用SAX方法解析 SAX(Simple API for XML) 只能读,不能修改,只能顺序访问,适合解析大型XML ...

  9. java基础71 XML解析中的【DOM和SAX解析工具】相关知识点(网页知识)

    本文知识点(目录):本文下面的“实例及附录”全是DOM解析的相关内容 1.xml解析的含义    2.XML的解析方式    3.xml的解析工具    4.XML的解析原理    5.实例    6 ...

随机推荐

  1. Mysql 创建用户授权

    MySQL创建用户与授权 一. 创建用户 命令: CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 说明: username:你将创建的用 ...

  2. JMETER之socket接口性能测试

    公司的**产品经过换代升级,终于要上线了,纯java编码,包括POS(PC/安卓平板)版.WEB版.微信版,各终端通过 Webservice服务共享数据资源,因此Webservice各接口的性能测试就 ...

  3. if判断,switch语句

    if ; else if; else; 判断操作: 格式示例: public class scanner { public static void main(String[] args){ int a ...

  4. 机械革命 x7ti-s 1周年使用报告

    2017年11月19日在京东入手一台机械革命x7ti-s(https://item.jd.com/5048818.html)当时各种优惠返现什么的最终8399.5到手(是1060显卡的机械版).前几周 ...

  5. install virtual enviroment on windows

    H:\>pip install virtualenv  --install virtualenvCollecting virtualenv Downloading https://files.p ...

  6. easyui-textbox多行文本中输入内容,有回车操作时将文本拼接<br/>

    <input class="easyui-textbox" name="versionText" id="versionText" d ...

  7. c#电子印章制作管理系统

    产品名称:电子印章制作管理系统 版  本  号:v0.0.0.1产品说明:本产品采用位图绘制方式,主要针对OA.ERP.金融等行业取代实物印章的一款产品,本产品有以下特点1.制作方便,容易操作2.规格 ...

  8. Unity Shader笔记

    shader “MyShader”{ Properties{ -CubeMap(“Cube Map” , Cube) = ""{这里可以添加图片渲染模式} } SubShader{ ...

  9. Google开源软负载seesaw

    https://github.com/google/seesaw ------------------------ 在分布式系统中,负载均衡是非常重要的环节,通过负载均衡将请求派发到网络中的一个或多个 ...

  10. java 图片转base64字符串、base64字符串转图片

    java 图片转base64字符串.base64字符串转图片 1. 图片转base64字符串: /** * base64编码字符串转换为图片 * @param imgStr base64编码字符串 * ...