首页 > 代码库 > XML文件操作之dom4j

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[红楼梦是中国四大名住著之一]]>  </红楼梦> </四大名著>

 

 

 

 

XML文件操作之dom4j