[color=blue]
package meiyx.com;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;
public class XmlUtil {
/**
* 生成 xml 串
* <person>
* <name>meiyx</name>
* <sex>femail</sex>
* <age>26</age>
* </person>
*/
public static String crestePersonXmlStr(){
//使用 DocumentHelper 类创建一个文档实例。 DocumentHelper 是生成 XML 文档节点的 dom4j API 工厂类。
Document document=DocumentHelper.createDocument();
//设置文档实例编码
document.setXMLEncoding("UTF-8");
//使用 addComment() 方法添加注释
document.addComment("A person info");
//使用 addElement() 方法创建根元素 root 。 addElement() 用于向 XML 文档中增加元素。
Element root=document.addElement("person");
//使用 addAttribute() 方法向 根 元素添加 nationality 属性
root.addAttribute("nationality ", "China");
Element name=root.addElement("name");
name.setText("meiyx");
Element sex=root.addElement("sex");
sex.setText("femail");
Element age=root.addElement("age");
age.setText("26");
return document.asXML();
}
/**
* @method description:创建xml文件
* @author:meiyx
* @date:2011-4-11
*/
public static void createXMlFile(){
//使用 DocumentHelper 类创建一个文档实例。 DocumentHelper 是生成 XML 文档节点的 dom4j API 工厂类。
Document document=DocumentHelper.createDocument();
//设置文档实例编码
document.setXMLEncoding("UTF-8");
//使用 addComment() 方法添加注释
document.addComment("A person info");
//使用 addElement() 方法创建根元素 root 。 addElement() 用于向 XML 文档中增加元素。
Element root=document.addElement("person");
//使用 addAttribute() 方法向 根 元素添加 nationality 属性
root.addAttribute("nationality ", "China");
Element name=root.addElement("name");
name.setText("meiyx");
Element sex=root.addElement("sex");
sex.setText("femail");
Element age=root.addElement("age");
age.setText("26");
try {
XMLWriter out=new XMLWriter(
new FileWriter(new File("C:/person.xml")));
out.write(document);
out.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @method description:通过给定的XMl串解析成Person对象
* @author:meiyx
* @date:2011-4-11
* @param person
* @return
*/
public static Person parseXMlStrToObject(){
String person=crestePersonXmlStr();
Person p=new Person();
try {
Document document = DocumentHelper.parseText(person);
Element root=document.getRootElement();
Iterator it=root.elementIterator();
//while(it.hasNext()){
Element element=(Element) it.next();
/* if(element.getName().equals("name")){
p.setName(element.getText().trim());
}else if(element.getName().equals("sex")){
p.setSex(element.getTextTrim());
}else if(element.getName().equals("age")){
p.setAge(Integer.parseInt(element.getTextTrim()));
}*/
//这两种做法都ok
p.setName(root.element("name").getTextTrim());
p.setSex(root.element("sex").getTextTrim());
p.setAge(Integer.parseInt(root.element("age").getTextTrim()));
//}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return p;
}
/**
* @method description:把给定的XMl文件接解析成Person对象
* @author:meiyx
* @date:2011-4-11
* @param inputXml
* @return
*/
public static Person parseXMlFileToObject(File inputXml){
//File inputXml=new File("C:\\person.xml");
Person p=new Person();
try {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(inputXml);
Element root=document.getRootElement();
Iterator it=root.elementIterator();
while(it.hasNext()){
Element element=(Element) it.next();
if(element.getName().equals("name")){
p.setName(element.getText().trim());
}else if(element.getName().equals("sex")){
p.setSex(element.getTextTrim());
}else if(element.getName().equals("age")){
p.setAge(Integer.parseInt(element.getTextTrim()));
}
}
} catch (DocumentException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return p;
}
public static void main(String args[]){
System.out.println(parseXMlStrToObject().getName());
}
}
[/color]
分享到:
相关推荐
"Dom4j 生成 XML 和解析 XML" Dom4j 是一个 Java 库,用于处理 XML 文档。它提供了生成和解析 XML 文档的功能。在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j ...
Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...
### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...
1. **DOM4J解析XML** - **Document对象**:DOM4J的核心是`Document`对象,它代表整个XML文档。解析XML文件后,DOM4J会构建一个`Document`对象树,你可以通过这个树来访问和操作XML的所有元素。 - **Element对象**...
DOM4J通过构建DOM树(Document Object Model)来解析XML。DOM模型是一种将XML文档转换为内存中对象树的表示方式。在DOM4J中,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`来创建`Document`对象,然后...
**dom4J生成和解析XML文件** DOM4J是一个强大的Java XML API,它不仅提供了DOM、SAX和JDOM等接口的实现,还提供了一种更简单、更灵活的方式来处理XML文档。这篇博客()可能详细介绍了如何使用DOM4J来生成和解析XML...
5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...
本文将详细介绍生成和解析XML的四种主要方法:DOM、DOM4J、SAX和JDOM。 1. DOM(Document Object Model) DOM是W3C组织推荐的一种解析XML的标准方式。它将XML文档视为一个树形结构,每个节点代表XML文档的一部分。...
主要介绍了java使用dom4j生成与解析xml文档的方法,结合实例形式分析了java基于dom4j操作xml节点生成xml文档以及解析xml文档的相关操作技巧,需要的朋友可以参考下
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
DOM4J作为解析XML的工具,其主要功能和特性包括: 1. **DOM模型**:DOM4J提供了基于DOM(Document Object Model)的接口,允许开发者以树形结构操作XML文档。通过`Document`对象,可以访问XML文档的根元素,并通过`...
Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...
**DOM4J解析XML** DOM4J是一个Java库,它为处理XML提供了强大的功能,包括读取、写入、修改和操作XML文档。这个库以其灵活性、效率和易用性而受到开发者的青睐。DOM4J是基于DOM(Document Object Model)的,但它...
在这个项目中,我们利用DOM4J来解析XML文件,并通过Java的反射机制将解析出的信息存储到特定的类中。 首先,我们需要了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于数据交换和结构化...
JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
在本示例中,我们将探讨如何利用DOM4J来读取和解析XML文件,以及如何通过`XMLTest.java`这个示例来理解DOM4J的基本用法。 首先,`XMLTest.java`是一个包含DOM4J操作XML的代码实例。通常,这样的程序会包含以下步骤...
在这个场景中,我们将深入理解如何使用DOM4J来生成XML文档以及如何解析XML内容。 首先,生成XML文档涉及以下几个主要步骤: 1. **创建Document对象**:`DocumentHelper.createDocument()`方法用于创建一个新的XML...
DOM4J提供了对XML Schema的全面支持,允许开发者在解析XML文档时进行严格的模式验证,确保数据的准确性和一致性。这对于企业级应用尤为重要,因为它们往往需要处理大量的结构化数据。 **3. 基于事件的处理** 对于...