您的位置:首页 > 其它

Dom4j创建和解析XML

2012-02-23 09:32 218 查看
需要导入Dom4j的一个Jar文件:

Dom4j创建XML

package com.shengsiyuan.dom4j;

import java.io.FileOutputStream;

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;

public class Test1

{

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

{

// 创建文档并设置文档的根元素节点 :第一种方式

// Document document = DocumentHelper.createDocument();

//

// Element root = DocumentHelper.createElement("student");

//

// document.setRootElement(root);

// 创建文档并设置文档的根元素节点 :第二种方式

Element root = DocumentHelper.createElement("student");

Document document = DocumentHelper.createDocument(root);

//给根元素添加属性

root.addAttribute("name", "zhangsan");

//给根元素添加子元素

Element helloElement = root.addElement("hello");

Element worldElement = root.addElement("world");

//设置元素的文本内容

helloElement.setText("hello");

worldElement.setText("world");

//给hello元素添加属性

helloElement.addAttribute("age", "20");

//将XML文档输出到命令行

XMLWriter xmlWriter = new XMLWriter();

xmlWriter.write(document);

//指定输出格式,第一个参数表示缩进,第二个参数表示是否换行

OutputFormat format = new OutputFormat(" ", true);

//以字节流的方式输出到文件

XMLWriter xmlWriter2 = new XMLWriter(new FileOutputStream("student2.xml"), format);

xmlWriter2.write(document);

//以字符流的方式输出到文件

XMLWriter xmlWriter3 = new XMLWriter(new FileWriter("student3.xml"), format);

xmlWriter3.write(document);

//xmlWriter3.flush();//当你使用字符流输出的时候,需要有这个刷新的方法,否则没有结果输出

xmlWriter3.close();//close方法中包含xmlWriter3的flush方法,所以这个方法也可以

}

}

Dom4j解析XML

package com.shengsiyuan.dom4j;

import java.io.File;

import java.util.Iterator;

import java.util.List;

import javax.xml.parsers.DocumentBuilder;

import javax.xml.parsers.DocumentBuilderFactory;

import org.dom4j.Document;

import org.dom4j.Element;

import org.dom4j.io.DOMReader;

import org.dom4j.io.SAXReader;

public class Test2

{

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

{

//Dom4j解析XMl方式一:使用SAXReader解析XML

SAXReader saxReader = new SAXReader();

//读取文档

Document doc = saxReader.read(new File("student2.xml"));

//得到根元素

Element root = doc.getRootElement();

System.out.println("root element: " + root.getName());

//得到根元素下的所有子元素

List childList = root.elements();

System.out.println(childList.size());

//得到根元素下的所有名字为hello子元素

List childList2 = root.elements("hello");

System.out.println(childList2.size());

//得到根元素下的第一个名字为hello的子元素

Element first = root.element("hello");

//得到hello元素下的属性为age的值

System.out.println(first.attributeValue("age"));

//遍历根元素下的子元素的第二种方法,第一种是使用List

for(Iterator iter = root.elementIterator(); iter.hasNext();)

{

Element e = (Element)iter.next();

//获得子元素属性为age的值,没有age属性,输出null

System.out.println(e.attributeValue("age"));

}

System.out.println("---------------------------");

//Dom4j解析XMl方式二:使用DOMReader解析XML

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

DocumentBuilder db = dbf.newDocumentBuilder();

//在一个项目中使用了名字相同的一个类,使用包名区分

org.w3c.dom.Document document = db.parse(new File("student2.xml"));

DOMReader domReader = new DOMReader();

//将JAXP的Document转换为dom4j的Document

Document d = domReader.read(document);

Element rootElement = d.getRootElement();

System.out.println(rootElement.getName());

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: