通过Dom4j读写XML文档
2007-01-16 09:58
429 查看
[原]通过Dom4j读写XML文档
package com.yy.xml.dom4j;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;
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 User {
private String xmlDocName = "users.xml";
public User() {
super();
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
User user = new User();
//user.newXML();
user.readXML();
}
public void newXML(){
/**
* users.xml
*/
Document doc = DocumentHelper.createDocument(); //users.xml
/**
* 根元素 users
*/
Element users = doc.addElement("users"
screen.width/2)this.style.width=screen.width/2;" border=0>; //根元素 users
doc.setRootElement(users);
users.addComment("the xml document about some login system information of users"
screen.width/2)this.style.width=screen.width/2;" border=0>;
/**
* 根元素 users 下的子元素 user
*/
Element user = users.addElement("user"
screen.width/2)this.style.width=screen.width/2;" border=0>; // 新增 users 的一个子元素 user
user.addAttribute("id","1"
screen.width/2)this.style.width=screen.width/2;" border=0>; //增加user的一个属性,并设置此属性值
Element username = user.addElement("username"
screen.width/2)this.style.width=screen.width/2;" border=0>; // 新增 user 元素的子元素 username
username.setText("yy"
screen.width/2)this.style.width=screen.width/2;" border=0>; //设置 username 的值
Element password = user.addElement("password"
screen.width/2)this.style.width=screen.width/2;" border=0>; // 新增 user 元素的子元素 password
password.setText("12345678"
screen.width/2)this.style.width=screen.width/2;" border=0>; //设置 password 的值
Element user2 = user.createCopy(); //通过对已有元素的拷贝,产生同一元素的不同实体
user2.attribute("id"
screen.width/2)this.style.width=screen.width/2;" border=0>.setValue("2"
screen.width/2)this.style.width=screen.width/2;" border=0>;
user2.element("username"
screen.width/2)this.style.width=screen.width/2;" border=0>.setText("liyun"
screen.width/2)this.style.width=screen.width/2;" border=0>;
user2.element("password"
screen.width/2)this.style.width=screen.width/2;" border=0>.setText("87654321"
screen.width/2)this.style.width=screen.width/2;" border=0>;
users.add(user2); //根元素增加已有的子元素
/**
* 通过 org.dom4j.io.OutputFormat 来设置XML文档输出格式
*/
OutputFormat format = OutputFormat.createPrettyPrint(); //设置XML文档输出格式
format.setEncoding("GB2312"
screen.width/2)this.style.width=screen.width/2;" border=0>; //设置XML文档的编码类型
format.setSuppressDeclaration(true);
format.setIndent(true); //设置是否缩进
format.setIndent(" "
screen.width/2)this.style.width=screen.width/2;" border=0>; //以空格方式实现缩进
format.setNewlines(true); //设置是否换行
/**
* 通过 org.dom4j.io.XMLWriter 创建XML文档(写)
*/
try {
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File(xmlDocName)),format);
xmlWriter.write(users);
xmlWriter.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void readXML(){
SAXReader saxReader = new SAXReader();
try {
/**
* 先通过 org.dom4j.io.SAXReader 读入整份XML文档
*/
Document usersXMLDoc = saxReader.read(new FileInputStream(new File(xmlDocName)));
/**
* 取得XML文档的各元素及其值
*/
Element users = usersXMLDoc.getRootElement(); //取得XML文档的根元素
Iterator users_subElements = users.elementIterator(); //以Iterator集合得到根元素下的所有子元素
//Iterator users_subElements = users.elementIterator("user"
screen.width/2)this.style.width=screen.width/2;" border=0>; //可以指定所要得到的子元素的名称
while(users_subElements.hasNext()){
Element user = (Element)users_subElements.next();
List user_subElements = user.elements(); //以List集合得到 user 下的所有子元素
//List user_subElements = user.elements("username"
screen.width/2)this.style.width=screen.width/2;" border=0>; //可以指定名称取得所要取的元素
for(int i=0;i<user_subElements.size();i++){
Element ele = (Element)user_subElements.get(i);
System.out.print(ele.getName()+" : "+ele.getText()+" "
screen.width/2)this.style.width=screen.width/2;" border=0>;
}
System.out.println();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
package com.yy.xml.dom4j;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;
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 User {
private String xmlDocName = "users.xml";
public User() {
super();
// TODO Auto-generated constructor stub
}
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
User user = new User();
//user.newXML();
user.readXML();
}
public void newXML(){
/**
* users.xml
*/
Document doc = DocumentHelper.createDocument(); //users.xml
/**
* 根元素 users
*/
Element users = doc.addElement("users"
screen.width/2)this.style.width=screen.width/2;" border=0>; //根元素 users
doc.setRootElement(users);
users.addComment("the xml document about some login system information of users"
screen.width/2)this.style.width=screen.width/2;" border=0>;
/**
* 根元素 users 下的子元素 user
*/
Element user = users.addElement("user"
screen.width/2)this.style.width=screen.width/2;" border=0>; // 新增 users 的一个子元素 user
user.addAttribute("id","1"
screen.width/2)this.style.width=screen.width/2;" border=0>; //增加user的一个属性,并设置此属性值
Element username = user.addElement("username"
screen.width/2)this.style.width=screen.width/2;" border=0>; // 新增 user 元素的子元素 username
username.setText("yy"
screen.width/2)this.style.width=screen.width/2;" border=0>; //设置 username 的值
Element password = user.addElement("password"
screen.width/2)this.style.width=screen.width/2;" border=0>; // 新增 user 元素的子元素 password
password.setText("12345678"
screen.width/2)this.style.width=screen.width/2;" border=0>; //设置 password 的值
Element user2 = user.createCopy(); //通过对已有元素的拷贝,产生同一元素的不同实体
user2.attribute("id"
screen.width/2)this.style.width=screen.width/2;" border=0>.setValue("2"
screen.width/2)this.style.width=screen.width/2;" border=0>;
user2.element("username"
screen.width/2)this.style.width=screen.width/2;" border=0>.setText("liyun"
screen.width/2)this.style.width=screen.width/2;" border=0>;
user2.element("password"
screen.width/2)this.style.width=screen.width/2;" border=0>.setText("87654321"
screen.width/2)this.style.width=screen.width/2;" border=0>;
users.add(user2); //根元素增加已有的子元素
/**
* 通过 org.dom4j.io.OutputFormat 来设置XML文档输出格式
*/
OutputFormat format = OutputFormat.createPrettyPrint(); //设置XML文档输出格式
format.setEncoding("GB2312"
screen.width/2)this.style.width=screen.width/2;" border=0>; //设置XML文档的编码类型
format.setSuppressDeclaration(true);
format.setIndent(true); //设置是否缩进
format.setIndent(" "
screen.width/2)this.style.width=screen.width/2;" border=0>; //以空格方式实现缩进
format.setNewlines(true); //设置是否换行
/**
* 通过 org.dom4j.io.XMLWriter 创建XML文档(写)
*/
try {
XMLWriter xmlWriter = new XMLWriter(new FileOutputStream(new File(xmlDocName)),format);
xmlWriter.write(users);
xmlWriter.close();
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void readXML(){
SAXReader saxReader = new SAXReader();
try {
/**
* 先通过 org.dom4j.io.SAXReader 读入整份XML文档
*/
Document usersXMLDoc = saxReader.read(new FileInputStream(new File(xmlDocName)));
/**
* 取得XML文档的各元素及其值
*/
Element users = usersXMLDoc.getRootElement(); //取得XML文档的根元素
Iterator users_subElements = users.elementIterator(); //以Iterator集合得到根元素下的所有子元素
//Iterator users_subElements = users.elementIterator("user"
screen.width/2)this.style.width=screen.width/2;" border=0>; //可以指定所要得到的子元素的名称
while(users_subElements.hasNext()){
Element user = (Element)users_subElements.next();
List user_subElements = user.elements(); //以List集合得到 user 下的所有子元素
//List user_subElements = user.elements("username"
screen.width/2)this.style.width=screen.width/2;" border=0>; //可以指定名称取得所要取的元素
for(int i=0;i<user_subElements.size();i++){
Element ele = (Element)user_subElements.get(i);
System.out.print(ele.getName()+" : "+ele.getText()+" "
screen.width/2)this.style.width=screen.width/2;" border=0>;
}
System.out.println();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
相关文章推荐
- 通过构架dataSet读写有父子关系的xml文档
- 通过dom4j对xml文档的读取操作工具类封装
- C#操作Xml:通过XmlDocument读写Xml文档
- 通过dom4j对xml文档的读取操作工具类封装
- 转载 通过DOM4J将数据库的表转换为XML文档
- C#操作Xml:通过XmlDocument读写Xml文档
- .Net那点事儿系列:C#操作Xml:通过XmlDocument读写Xml文档
- 通过XmlDocument读写Xml文档参考地址
- dom4j读写XML文档(大全)
- xml解析4:使用dom4j框架进行对xml文档生成和读写解析
- 通过 DOM4J 方式生成 XML 文档
- dom4j读写xml文档实例
- 使用dom4j来处理xml文档
- java中利用dom4j对XML文档的创建、解析、查找、修改、保存等操作。
- DOM4J创建XML文档
- python通过dom生成XML文档
- mfc通过MSXML读写xml
- Dom4j下载及使用Dom4j读写XML简介
- 利用dom4j 解析xml 文档并将数据存入数据库
- VB读写XML文档