package com.lovo.xml.dom4j;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.Node;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class Test1 {
public Document read(String fileName) throws Exception {
SAXReader reader = new SAXReader();
// DOMReader reader = new DOMReader();
Document document = reader.read(new File(fileName));
return document;
}
/**
* 循环所有子节点
*/
public void printAll(Document doc) {
Element root = doc.getRootElement();
for (Iterator i = root.elementIterator(); i.hasNext();) {
Element ele = (Element) i.next();
System.out.print("no:" + ele.elementText("no"));
System.out.println(" addr:" + ele.elementText("addr"));
printAllAttribute(ele);
}
}
/**
* 循环指定名称子节点
*/
public void printAll(Document doc, String nodeName) {
Element root = doc.getRootElement();
Element ele;
for (Iterator i = root.elementIterator(nodeName); i.hasNext();) {
ele = (Element) i.next();
System.out.print("no:" + ele.elementText("no"));
System.out.println(" addr:" + ele.elementText("addr") );
printAllAttribute(ele);
}
}
/**
* 打印所有子节点
*/
public void printAllChildNode(Element element) {
for (int i = 0, size = element.nodeCount(); i < size; i++) {
Node node = element.node(i);
if (node instanceof Element) {
printAllChildNode((Element) node);// 递归
} else { // 其它处理
}
}
}
/**
* 打印节点的所有属性
*/
public void printAllAttribute(Element ele){
for ( Iterator i = ele.attributeIterator(); i.hasNext(); ) {
Attribute attribute = (Attribute) i.next();
System.out.println(attribute.getName()+" = "+attribute.getText());
}
}
public Document createDocument() {
Document doc = DocumentHelper.createDocument();
Element root = doc.addElement("root");
for (int i = 0; i < 3; i++) {
root.addElement("author" + i).addAttribute("age", "20" + i)
.addText("Mike");
}
return doc;
}
/**
* 保存
*/
public void saveXML(Document doc, String fileName) {
FileWriter out;
try {
out = new FileWriter(fileName);
doc.write(out);
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 保存(加入缓冲功能)
*/
public void saveXML2(Document doc, String fileName) {
FileWriter out;
BufferedWriter out2;
try {
out = new FileWriter(fileName);
out2 = new BufferedWriter(out);
doc.write(out2);
out2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public void formatXML(String oldFileName,String newFileName) throws Exception {
//创建格式对象
OutputFormat format = OutputFormat.createPrettyPrint();// createCompactFormat
format.setEncoding("GBK");//设置字符集
format.setIndentSize(4);//指定缩写尺寸
//创建输出文件流
FileWriter out = new FileWriter(newFileName);
//关键:按指定格式,将格式化的结果输出到out流
XMLWriter writer = new XMLWriter(out, format);
Document doc = this.read(oldFileName);
writer.write(doc);
out.close();
}
public static void main(String[] args) {
Test1 t1 = new Test1();
// try {
// Document doc = t1.read("em.xml");
// t1.printAll(doc);
//
// } catch (Exception e) {
// e.printStackTrace();
// }
Document doc = t1.createDocument();
// t1.saveXML(doc, "ok.xml");
try {
t1.formatXML("ok.xml","ok2.xml");
} catch (Exception e) {
e.printStackTrace();
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
我写的几个dom4j的入门例子.rar (15个子文件)
books.xml 284B
save.properties 112B
dom4j
JdomSave1.java 849B
Dom4jRead1.java 1KB
Dom4jSave3.java 1KB
SqlXmlUtil.java 946B
Dom4jSave1.java 1KB
Dom4jRead2.java 1KB
Test1.java 4KB
Dom4jRead3.java 1KB
Dom4jSave2.java 1KB
xml002.xml 180B
data.xml 230B
sql.xml 275B
xml003.xml 302B
共 15 条
- 1
资源评论
骁勇善栈
- 粉丝: 25
- 资源: 82
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功