一、XML解析方式有两类:
        一】DOM(文档对象模型)
            1)一次性将整个XML文件读到内存,形成一颗DOM树
        二】SAX(XML的简单API)[simple API for XML]
            1)SAX多次将XML文件的每部分读到内存

二、步骤:

  一】利用SAXReader类获取Document对象

        SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("src/com/suse/simpledom4j/car.xml"));

  二】通过Document获取元素和属性

    常用方法: 

              得到子元素的List集合:     List       elements()
得到元素的名称: String getName()
得到指定子元素引用: Element element("子元素名称");
得到子元素封装的信息: String elementText("子元素名称");
得到元素的属性值: String attributeValue("属性名");
添加一个子元素: Element addElement("子元素名称");
设置元素封装的信息: void setText("封装的信息");
删除一个子元素: boolean remove(子元素引用);
将元素转换成字符串: String asXML();

   三】通过XMLWriter类将内存中的XML文件回写到硬盘上

    常用类及方法:

       1)OutputFormat对象:制定流的输出时在文档中的显示格式
常用方法:
返回一个优美的格式器对象:static OutputFormat createPrettyPrint();
2) XMLWriter流对象:用于将内存中的XML文件输出到硬盘上
构造方法:
XMLWriter(输出流)
常用方法:
将内存中的XML写入到硬盘上:void writer(Document document);
关闭流:void close();

三、对XML文件进行增删改查

  code:

    private Document getDocument() throws Exception {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("src/com/suse/simpledom4j/car.xml"));
return document;
} @Test
public void add() throws Exception {
Document document = getDocument();
Element element = document.getRootElement();
Element carElement = (Element) element.elements().get(0);
Element priceElement = carElement.addElement("价格");
priceElement.setText("20万"); doc2XML(document);
} @Test
public void delete() throws Exception {
Document document = getDocument();
Element element = document.getRootElement();
List<Element> elmentList = element.elements(); Element carElement = elmentList.get(0);
Element priceElement = carElement.element("价格"); carElement.remove(priceElement); doc2XML(document);
} @Test
public void update() throws Exception {
Document document = getDocument();
Element rootElement = document.getRootElement();
Element carElement = (Element) rootElement.elements().get(0); carElement.element("价格").setText("60万元"); doc2XML(document);
} @Test
public void select() throws Exception {
Document document = getDocument();
Element rootElement = document.getRootElement(); Element carElement = (Element) rootElement.elements().get(0);
String price = carElement.element("价格").getTextTrim();
System.out.println("价格为:" + price);
} private void doc2XML(Document doc) throws Exception { //得到一个格式优美的格式输出器
OutputFormat outputFormat = OutputFormat.createPrettyPrint(); File file = new File("src/com/suse/simpledom4j/car.xml");
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(file), outputFormat); xmlWriter.write(doc);
xmlWriter.close(); }

四、其它API

 一】 DocumentHelper对象:   

          static Document createDocument();//创建一个Document对象
          static Element createElement("元素名");//创建一个元素,并返回此元素的子类【注:可以使用】
static Document parseText("符合XML格式的字符串");//创建一个document对象并返回
        
              

  二】在指定位置插入节点元素
              ----通过List集合的add(index,E)方法
          方法原型:
                void add(int index, E element);

  三】字符串与XML文件的转换

    1)字符串  --->    XML
                通过parseText方法
                eg:

             String text = "<members> <member>sitinspring</member></members>";
Document dDocument = DocumentHelper.parseText(text);

2)XML   --->        字符串
                通过asXML方法:Document、和Element对象都具有此方法
                eg:

                     SAXReader reader = new SAXReader();
Document document = reader.read(new File("input.xml"));
Element rootElement = docuemnt.getRootElement();
Element memberElement = root.element("member"); String str_doc = document.saXML();
String str_rootEle = rootElement.asXML();
String str_memberEle = memberElement.asXML();

XML解析之dom4j的更多相关文章

  1. Java XML解析工具 dom4j介绍及使用实例

    Java XML解析工具 dom4j介绍及使用实例 dom4j介绍 dom4j的项目地址:http://sourceforge.net/projects/dom4j/?source=directory ...

  2. 【Java】XML解析之DOM4J

    DOM4J介绍 dom4j是一个简单的开源库,用于处理XML. XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP,使用需要引用dom4j.jar包 ...

  3. xml解析 使用dom4j操作xml

     使用dom4j操作xml 1 导入 dom4j,的jar包   2 指定要解析的XML文件 SAXReader sr=new SAXReader(); Document document= sr.r ...

  4. XML 解析之 dom4j 解析器

    dom4j 的使用需要导入 jar 包, 包括: dom4j-1.6.1 和 jaxen-1.1-beta 步骤: 在项目目录下,"Folder" 创建一个 lib 文件夹 复制 ...

  5. Java -- XML解析工具dom4j

    前言 XML现已成为一种通用的数据交流方式,它的平台无关性.语言无关性.系统无关性.给数据集成与交互带来了极大的方便,对于XML的解析有四种方式:DOM生成和解析XML文档,SAX生成和解析XML文件 ...

  6. XML解析技术-dom4j

  7. DOM综合案例、SAX解析、StAX解析、DOM4J解析

    今日大纲 1.DOM技术对xml的增删操作 2.使用DOM技术完成联系人管理 3.SAX和StAX解析 4.DOM4J解析 5.XPATH介绍 1.DOM的增删操作 1.1.DOM的增加操作 /* * ...

  8. 具体解释XML解析(一)—解析接口浅析

    在DRP项目中接触到了一个XML解析工具DOM4J,它作为解析工具的据说性能很优秀.可是刚刚接触解析工具不久,而且也没有使用过其它的解析工具.因此对于DOM4J的性能没有直接的感受(没有參照物).只是 ...

  9. Dom4j解析Xml文件,Dom4j创建Xml文件

    Dom4j解析Xml文件,Dom4j创建Xml文件 >>>>>>>>>>>>>>>>>>&g ...

随机推荐

  1. Linux标准输入、输出和错误和文件重定向(转) --- good

    标准输入.输出和错误 当我们在shell中执行命令的时候,每个进程都和三个打开的文件相联系,并使用文件描述符来引用这些文件.由于文件描述符不容易记忆,shell同时也给出了相应的文件名.下面就是这些文 ...

  2. 【转】Android开发工具--android-studio-bundle-141.2288178

    原文网址:http://www.androiddevtools.cn/ AndroidDevTools简介 Android Dev Tools官网地址:www.androiddevtools.cn 收 ...

  3. sql server2008如何创建外键

    原文地址:http://blog.csdn.net/zuozuo1245/article/details/8644115 以前创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关 ...

  4. LeetCode-Word LadderII

    Given two words (start and end), and a dictionary, find all shortest transformation sequence(s) from ...

  5. hdu 4746 Mophues

    莫比乌斯反演.先初始化出所有数有多少个质因子和mobius.然后处理mob_sum[ i ][ j ],表示当公因子的因子个数小于等于 j 个的mobius前 i 项和.然后分块求和即可. 分块处理部 ...

  6. 简单的新闻客户端APP开发(DCloud+thinkphp+scrapy)

    前端时间花了1个月左右,搞了个新闻APP,功能很简单,就是把页面版的新闻条目定时爬到后台数据库,然后用app显示出来. 1.客户端 使用了DCloud框架,js基本是个新手,从没写过像样的代码,htm ...

  7. 解决html5新标签【placeholder】低版本浏览器下不兼容问题

    placeholder属性是HTML5 中为input添加的.在input上提供一个占位符,文字形式展示输入字段预期值的提示信息(hint),该字段会在输入为空时显示. 实例:1 <input ...

  8. 深入解读ESB与SOA的关系

    时至今日,SOA的概念渐渐清晰了.   有关ESB的概念,已经吵了好多年了,还是没有定论. 我个人认为,ESB本来就是抽象的概念,而且内涵丰富,在不同的场合含义不同.因此应该从不同的角度来认识.   ...

  9. Codeforces Round #FF (Div. 2):Problem A - DZY Loves Hash

    A. DZY Loves Hash time limit per test 1 second memory limit per test 256 megabytes input standard in ...

  10. js 判断微信浏览器(转)

    最近做很多HTML5的项目,很多页面会通过微信微博等SNS分享出去.在分享页面上提供公司APP的下载.但是在很多应用的浏览器中,点击下载链接无法下载应用.那么针对这些浏览器我们需要给用户提示从safa ...