XML文件操作之dom4j

能够操作xml的api还是挺多的,DOM也是可以的,不过在此记录下dom4j的使用,感觉确实挺方便的

所需jar包官网地址:http://www.dom4j.org/dom4j-1.6.1/

dom4j相关的重要类和方法

SAXReader,用于读取外部的xml文件,实例

SAXReader reader=new SAXReader();

Document document=reader.read(new File("f:/test.xml"));

SAXReader 的read方法可以读取外部的xml文件,返回一个Document 对象

Document,dom4j的一个文档对象,用于操作xml文档的结构,可通过调用它的getRootElement()方法获取根元素Element对象

Document document=reader.read(new File("f:/test.xml"));

Element root=document.getRootElement();

Element,元素对象,它的方法还是挺多的,是主要操作对象。方法如下:

element("ElementName"),方法可以获取该元素标签中的名称为ElementName的子Element元素对象

Element root=document.getRootElement();
Element element=root.element("红楼梦");

attribute("id") ,获取属性为id的Attribute对象

Attribute attr=element.attribute("id");

addElement("ElementName"),添加一个新的子Element标签,名字为ElementName

addText(""),为element对象添加 text值

Element e=element.addElement("朝代");
e.addText("唐朝");

remove(Attribute),移除一个指定的Attribute对象

Element element=root.element("红楼梦");
Attribute attr=element.attribute("id");
element.remove(attr);

addAttribute("name","value"),添加一个新的属性

element.addAttribute("作者", "wang");

addCDATA("")添加一段不可解析的字符

element.addCDATA("红楼梦是中国四大名著之一");

Attribute,属相对象,操作属性值,通过Element对象的Attribute("")方法获取

XMLWriter,用于输出xml到指定文件

OutputFormat format = OutputFormat.createPrettyPrint(); //格式化输出文件
format.setEncoding("UTF-8");
XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("f:/test2.xml")),format);
xmlWriter.write(document);

实例代码

test.xml文件如下:

<?xml version="1.0" encoding="UTF-8"?>
<四大名著>
    <西游记 id="x001">
        <作者>吴承恩1</作者>
        <作者>吴承恩2</作者>
        <朝代>明朝</朝代>
    </西游记>
    <红楼梦 id="x002">
        <作者>曹雪芹</作者>
    </红楼梦>
</四大名著> 

执行代码如下:

package util;

import java.io.File;
import java.io.FileOutputStream;

import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

public class XmlUtil {

    public static void main(String[] args) {
        parseXml();
    }

    public static String parseXml(){
        String xmlResult = null;
        SAXReader reader=new SAXReader();

        try {
            Document document=reader.read(new File("f:/test.xml"));

            Element root=document.getRootElement();
            Element element=root.element("红楼梦");
            Attribute attr=element.attribute("id");
            element.remove(attr);
            element.addAttribute("作者", "wang");
            Element e=element.addElement("朝代");
            e.addText("唐朝");
            element.addCDATA("红楼梦是中国四大名著之一");

            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("UTF-8");
            XMLWriter xmlWriter=new XMLWriter(new FileOutputStream(new File("f:/test2.xml")),format);
            xmlWriter.write(document);
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return xmlResult;
    }
}

执行后,生成了test2.xml文件,内容如下:

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

<四大名著>
  <西游记 id="x001">
    <作者>吴承恩1</作者>
    <作者>吴承恩2</作者>
    <朝代>明朝</朝代>
  </西游记>
  <红楼梦 作者="wang">
    <作者>曹雪芹</作者>
    <朝代>唐朝</朝代><![CDATA[红楼梦是中国四大名住著之一]]>
  </红楼梦>
</四大名著>
时间: 2024-10-03 19:14:08

XML文件操作之dom4j的相关文章

xml文件操作

一.xml文件操作1.了解xml文件的SAX解析方式 1.1SAX解析XML  //第一步:解析xml的对象  //工厂模式   SAXParser parser = SAXParserFactory       .newInstance()       .newSAXParser();  //第二步:获得xml文件   InputStream is = getResources().openRawResource(R.raw.shu);  //第三步: 处理器   DefaultHandler

python解析xml文件操作的例子

python解析xml文件操作实例,操作XML文件的常见技巧. xml文件内容: <?xml version="1.0" ?> <!--Simple xml document__chapter 8--> <book> <title> sample xml thing </title> <author> <name> <first> ma </first> <last>

XML文件解析之DOM4J解析

1.DOM4J介绍 dom4j的官网是http://www.dom4j.org/dom4j-1.6.1/,最新的版本是1.6.1,根据官网介绍可知.dom4j是一个易用的.开源的库,应用于Java平台XML.XPath.和XSLT,并且提供了对DOM.SAX和JAXP的完全支持.主要功能包括针对Java平台设计完成支持Java的集合框架:完全的支持JAXP, TrAX, SAX, DOM, and XSLT:为XML文档的简单导航完全集成的XPath支持:基于事件的过程模式完全支持大量的文档或者

VS之XML文件操作

XML,可扩展的标识语言(eXtensible Markup Language),具有多种优势,所以现在被广泛使用,本文通过一个简单的例子来实现对XML文件的保存和读取操作. 使用工具:VS2008 使用语言:C++ 开发步骤: 1.新建对话框程序 2.添加XML相关类 该类摘自网络 Markup.h // Markup.h: interface for the CMarkup class. // // Markup Release 8.2 // Copyright (C) 1999-2006

PHP对XML文件操作详细

DOMDocument相关的内容. 属性: Attributes 存储节点的属性列表(只读) childNodes 存储节点的子节点列表(只读) dataType 返回此节点的数据类型 Definition 以DTD或XML模式给出的节点的定义(只读) Doctype 指定文档类型节点(只读) documentElement 返回文档的根元素(可读写) firstChild 返回当前节点的第一个子节点(只读) Implementation 返回XMLDOMImplementation对象 las

7.数据本地化CCString,CCArray,CCDictionary,tinyxml2,写入UserDefault.xml文件,操作xml,解析xml

 数据本地化 A CCUserDefault 系统会在默认路径cocos2d-x-2.2.3\projects\Hello\proj.win32\Debug.win32下生成一个名为UserDefault.xml.所有的key皆为char *型,value类型为bool intfloat double std::string. 读操作 bool getBoolForKey(const char* pKey); bool getBoolForKey(const char* pKey, bool

Spring Batch 简单应用 (三)(XML文件操作)

前篇关于Spring Batch的文章,讲述了Spring Batch 对CSV文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对XML文件的读写操作.实例流程是从一个XML文件中读取商品信息,经过简单的处理,写入另外一个XML文件中. 工程结构如下图: log4j.xml是log处理的配置文件,与本文没有必然联系,再此不做论述. application.xml文件内容如下: 按 Ctrl+C 复制代码 <?xml version="1.0"

XML文件操作类--创建XML文件

这个类是在微软XML操作类库上进行的封装,只是为了更加简单使用,包括XML类创建节点的示例. using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Xml; namespace testForm { class Operation_APPCFG { XmlDocument xmldoc; XmlNode

Java:简单的读写XML文件之使用DOM4J读写

Dom4J方式解析XML文件.dom4j是非官方提供的xml文件解析方式,因此需要去第三方下载dom4j的jar包 File file = new File("D:\\chengmuzhe\\java\\JavaOOP6.0\\students.xml"); SAXReader reader = new SAXReader(); Document document = reader.read(file); Element root = document.getRootElement()