dom4j方式写入xml
2015-10-08 14:04
344 查看
package com.dheaven.mip.item;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Dom4jDemo implements XmlDocument {
/* (non-Javadoc)写入xml
* @see com.dheaven.mip.item.XmlDocument#createXml(java.lang.String)
*/
public void createXml(String fileName) {
//创建document对象
Document document=DocumentHelper.createDocument();
//为document对象添加一级节点
Element students=document.addElement("students");
//在一级节点下添加二级节点
Element student=students.addElement("student");
Element name=student.addElement("name");
name.setText("刘德华");
Element sex=student.addElement("sex");
sex.setText("男");
try {
/*直接通过write方法输出,如下,此时输出的xml文件中为默认的UTF-8编码,没有格式,空格也没有去除,实际上就是一个字符串;*/
Writer fileWriter=new FileWriter(fileName);
// XMLWriter xmlWriter=new XMLWriter(fileWriter);
/* 用XMLWriter类中的write方法,此时可以自行设置输出格式,比如紧凑型、缩减型:此时输出的xml文件中为gb2312编码,缩减型格式,但是多余的空格已经被清除:*/
OutputFormat format = OutputFormat.createPrettyPrint();//缩减型格式
//OutputFormat format = OutputFormat.createCompactFormat();//紧凑型格式
format.setEncoding("gb2312");//设置编码
//format.setTrimText(false);//设置text中是否要删除其中多余的空格
XMLWriter xmlWriter=new XMLWriter(fileWriter,format);
/*如果想要对xml文件的输出格式进行设置,就必须用XMLWriter类,但是我们又需要保留其中的空格,此时我们就需要对format进行设置,也就是加上一句format.setTrimText(false);
这样就可以既保持xml文件的输出格式,也可以保留其中的空格;element中attribute中的值如果有空格的话在任何情况下是都不会去除空格的;*/
xmlWriter.write(document);
xmlWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/* (non-Javadoc)解析xml文件
* @see com.dheaven.mip.item.XmlDocument#parserXml(java.lang.String)
*/
public void parserXml(String fileName) {
File inputXml=new File(fileName);
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(inputXml);
Element employees=document.getRootElement();
for(Iterator i = employees.elementIterator(); i.hasNext();){
Element employee = (Element) i.next();
for(Iterator j = employee.elementIterator(); j.hasNext();){
Element node=(Element) j.next();
System.out.println(node.getName()+":"+node.getText());
}
}
} catch (DocumentException e) {
System.out.println(e.getMessage());
}
}
}
TEST:
package com.dheaven.mip.item;
public class xmltest {
public static void main(String[] args) {
Dom4jDemo domxml=new Dom4jDemo();
//写入
domxml.createXml("D:/domxml.xml");
//解析
domxml.parserXml("D:/domxml.xml");
}
}
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Dom4jDemo implements XmlDocument {
/* (non-Javadoc)写入xml
* @see com.dheaven.mip.item.XmlDocument#createXml(java.lang.String)
*/
public void createXml(String fileName) {
//创建document对象
Document document=DocumentHelper.createDocument();
//为document对象添加一级节点
Element students=document.addElement("students");
//在一级节点下添加二级节点
Element student=students.addElement("student");
Element name=student.addElement("name");
name.setText("刘德华");
Element sex=student.addElement("sex");
sex.setText("男");
try {
/*直接通过write方法输出,如下,此时输出的xml文件中为默认的UTF-8编码,没有格式,空格也没有去除,实际上就是一个字符串;*/
Writer fileWriter=new FileWriter(fileName);
// XMLWriter xmlWriter=new XMLWriter(fileWriter);
/* 用XMLWriter类中的write方法,此时可以自行设置输出格式,比如紧凑型、缩减型:此时输出的xml文件中为gb2312编码,缩减型格式,但是多余的空格已经被清除:*/
OutputFormat format = OutputFormat.createPrettyPrint();//缩减型格式
//OutputFormat format = OutputFormat.createCompactFormat();//紧凑型格式
format.setEncoding("gb2312");//设置编码
//format.setTrimText(false);//设置text中是否要删除其中多余的空格
XMLWriter xmlWriter=new XMLWriter(fileWriter,format);
/*如果想要对xml文件的输出格式进行设置,就必须用XMLWriter类,但是我们又需要保留其中的空格,此时我们就需要对format进行设置,也就是加上一句format.setTrimText(false);
这样就可以既保持xml文件的输出格式,也可以保留其中的空格;element中attribute中的值如果有空格的话在任何情况下是都不会去除空格的;*/
xmlWriter.write(document);
xmlWriter.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/* (non-Javadoc)解析xml文件
* @see com.dheaven.mip.item.XmlDocument#parserXml(java.lang.String)
*/
public void parserXml(String fileName) {
File inputXml=new File(fileName);
SAXReader saxReader = new SAXReader();
try {
Document document = saxReader.read(inputXml);
Element employees=document.getRootElement();
for(Iterator i = employees.elementIterator(); i.hasNext();){
Element employee = (Element) i.next();
for(Iterator j = employee.elementIterator(); j.hasNext();){
Element node=(Element) j.next();
System.out.println(node.getName()+":"+node.getText());
}
}
} catch (DocumentException e) {
System.out.println(e.getMessage());
}
}
}
TEST:
package com.dheaven.mip.item;
public class xmltest {
public static void main(String[] args) {
Dom4jDemo domxml=new Dom4jDemo();
//写入
domxml.createXml("D:/domxml.xml");
//解析
domxml.parserXml("D:/domxml.xml");
}
}
相关文章推荐
- XML 与 JSON 优劣对比
- As3.0 xml + Loader应用代码
- 网马生成器 MS Internet Explorer XML Parsing Buffer Overflow Exploit (vista) 0day
- ext读取两种结构的xml的代码
- C#针对xml基本操作及保存配置文件应用实例
- asp下查询xml的实现代码
- sqlserver FOR XML PATH 语句的应用
- 使用sp_xml_preparedocument处理XML文档的方法
- EBS xml publisher中文乱码问题及解决办法
- C#中的Linq to Xml详解
- C#操作XML文件实例汇总
- SQL Server中的XML数据进行insert、update、delete
- SQL Server中的XML数据进行insert、update、delete操作实现代码
- 关于SQLServer2005的学习笔记 XML的处理
- C#通过DataSet读写xml文件的方法
- C#实现基于XML配置MenuStrip菜单的方法
- php xml 入门学习资料
- Zend 输出产生XML解析错误
- PHP遍历XML文档所有节点的方法