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");
}
}
分享到:
相关推荐
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中
自己写的dom4j 解析xml 文档的纤细案例,主要讲解,如何使用dom4j 来读取 或 写入xml 文档。。。
使用dom4j解析xml,包括节点的操作、属性的操作、document对象写入新文件等操作。
二、用Java语言(Dom4j)完成了以下XMLToVds、TxtToVDS功能: 项目文件为TxtToVDS.java 、XMLToVds.java 1、创建TXT D:/zhouyl/111.txt 2、读TXT文本D:/zhouyl/111.txt创建相应格式的D:/zhouyl/111.VDS 3、创建XML...
使用DOM4J进行的一系列对XML文件的操作,包括读写,创建,同时注释出相关的常用的解析器,Document创建器
代码可能有点乱,不过用来参考应该足够
这是一个Java工程,用到了两项技术: 1. 用dom4j解析XML 2. 把解析的数据存入Excel文件中 例子简单易读
} <br> /** * 修改XML文件中内容,并另存为一个新文件 * 重点掌握dom4j中如何添加节点,修改节点,删除节点 * @param filename 修改对象文件 * @param newfilename 修改后另存为该文件 * @...
java处理BOM头的XML,使用记事本编辑会产生BOM头,这样的XML在dom4j处理时会报异常。
主要介绍了Python minidom模块用法,结合实例形式分析了Python DOM创建、写入和解析XML文件相关操作技巧,需要的朋友可以参考下
解析xml文件以及生成xml文件的jar包,能够快速的解决xml文件的读取与写入,根据元素直接定位
android json与xml解析 例子 demo 包含Json和xml解析 其中json包括解析带数组的和不带数组的; xml包括DOM解析和SAX解析
这篇博客内容将包括对XML文件的解析、追加新元素后写入到XML,以及更新原XML文件中某结点的值。使用的是python的xml.dom.minidom包,详情可见其官方文档:xml.dom.minidom官方文档。全文都将围绕以下的customer.xml...
功能:写入xml文件 参数:[in] xml文件路径 返回:true写入成功 false写入失败 **************************************/ bool WriteXml(CString sXmlPath /*xml文件路径*/); /****************************...
此示例介绍了xml的三种解析方式,包括SAX解析,dom解析,pull解析 并介绍了读取文件的方法,怎么写入xml文件等内容,希望对您有所帮助,谢谢。
Delphi7向常用的XML文件中添加内容,按照XML的节点规则依次写入内容,自定义各个节点及节点内容,具体的操作代码如下示: var iXml: IDOMDocument; iRoot, iNode, iNode2, iChild, iAttribute: IDOMNode; ...
org.jdom包含了所有的xml文档要素的java类 org.jdom.adapters包含了与dom适配的java类 org.jdom.filter包含了xml文档的过滤器类 org.jdom.input包含了读取xml文档的类 org.jdom.output包含了写入xml文档的类 org....
4) XML没有定义任何标记,它提供了一种工具定义标记以及它们之间的结构关系; 5) XML是一种用于结构化文本交换的标记语言; 6) XML代表了内容的结构也代表了内容本身; 7) XML继承自SGML(标准通用标记语言)。SGML的...