当前位置:首页 > 开发 > 编程语言 > XML > 正文

xml解析之(二) - dom4j解析xml

发表于: 2014-10-01   作者:砺雪凝霜   来源:转载   浏览:
摘要: xml解析之(二) - dom4j解析xml     dom4j解析在开发中很多时候都会用到,尤其是当我们要多dom元素进行增删改的操作的时候,查询的话建议用SAX解析方式 1.先写一个工具类: public class Dom4jXmlUtils { /**  * 工具类  * 通过xml的路径

xml解析之(二) - dom4j解析xml

    dom4j解析在开发中很多时候都会用到,尤其是当我们要多dom元素进行增删改的操作的时候,查询的话建议用SAX解析方式

1.先写一个工具类:

public class Dom4jXmlUtils {

/**

 * 工具类

 * 通过xml的路径得到document对象

 * @param path

 * @return

 * @throws Exception

 */

public static Document getDocument(String path) throws Exception {

//创建一个解析器

SAXReader reader = new SAXReader();

//解析xml文件返回一个document对象

return reader.read(path).getDocument();

}

/**

 * 回写出格式漂亮的xml

 * @param document

 * @param path

 * @throws Exception

 */

    public static void writerXml(Document document,String path) throws Exception{

    //创建一个漂亮xml的格式,可以把格式化xml,使程序员能很好的看懂

    OutputFormat format = OutputFormat.createPrettyPrint();

   //创建一个xml输出流

    XMLWriter writer = new XMLWriter(new FileOutputStream(path),format);

    //把内存中的document写进一个xml文件中

    writer.write(document);

    //关闭流

    writer.close();

    }  

}

 

2.入门例子

public class Dom4jParseXML {

/**

 * dom4j操作xml入门

 * @author Mrliu

 * @param args

 */

public static void main(String[] args) throws Exception {

String path = "src/person.xml";

//removeElement(path);

//addElement(path);

modifyElement(path);

}

/**

 * 把第一个person节点中age节点中的文本设置成44

 * @param path

 * @throws Exception

 */

public static void modifyElement(String path) throws Exception{

//new一个解析器

SAXReader reader = new SAXReader();

//拿到document文档

Document document = reader.read(path).getDocument();

//拿到跟节点

Element root = document.getRootElement();

Element person = (Element) root.elements().get(0);

Element age = person.element("age");

age.setText("44");

//回写:在内存中修改好了xml文件,然后要把document对象写进xml文件中

OutputFormat format = OutputFormat.createPrettyPrint();

//xml文档漂亮的格式

XMLWriter writer = new XMLWriter(new FileOutputStream(path),format);

writer.write(document);

writer.close();

}

 

/**

 * 删除person标签下的第四个节点

 * @param  path

 * @throws Exception

 */

@SuppressWarnings("unchecked")

public static void removeElement(String path) throws Exception {

//拿到document对象

Document document = Dom4jXmlUtils.getDocument(path);

//拿到根节点

Element root = document.getRootElement();

Element element = (Element) root.elements().get(0);

List<Element> list = element.elements();

list.remove(4);

//回写

Dom4jXmlUtils.writerXml(document, path);

}

/**

 * 添加<dog>狼狗</dog>

 * @param path

 * @throws Exception

 */

public static void addElement(String path) throws Exception{

//得到document对象

Document document = Dom4jXmlUtils.getDocument(path);

//得到文档的根节点

Element root = document.getRootElement();

//拿到person节点

    Element person = (Element) root.elements().get(0);

    //拿到person下的子节点

    List<Element> list = person.elements();

    //创建一个<dog>节点

    Element dog = DocumentHelper.createElement("dog");

    //设置文本内容

    dog.setText("狼狗");

    list.add(4, dog);

    //回写

    Dom4jXmlUtils.writerXml(document, path);

}

}

xml解析之(二) - dom4j解析xml

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
下面我们看一下dom4j解析XML是怎么解析的直接上代码: XML: <?xml version="1.0" encoding="GB2
上篇博客简单介绍了XML的三种接口,也是为学习DOM4J这个解析工具做的准备。一般的解析器基本都实现
dom4j 是一种解析 XML 文档的开放源代码 XML 框架。本文介绍如何使用包含在 dom4j 中的解析器创建并
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML AP
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML AP
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML AP
dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。dom4j是一个非常非常优秀的Java XML AP
1、Dom4j概述 dom4j is an easy to use, open source library for working with XML, XPath and XSL
@GDataXMLNode是Google提供的用于XML数据处理的类集。该类集对libxml2-DOM处理方式进行了封装,能对
DOM4J 与利用DOM、SAX、JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异、功能强大和极端易
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号