`
meiyx
  • 浏览: 183633 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

Dom4j生成与解析XML

阅读更多
[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 生成 XML 和解析 XML" Dom4j 是一个 Java 库,用于处理 XML 文档。它提供了生成和解析 XML 文档的功能。在本文中,我们将学习如何使用 Dom4j 生成 XML 文档和解析 XML 文档。 生成 XML 文档 使用 Dom4j ...

    Dom4J生成XML的完整方法希望大家能用到

    Dom4J作为一款优秀的Java XML API,以其简洁、高效的特点,在生成、解析和操作XML文档方面表现突出。本文将深入探讨如何使用Dom4J库来创建XML文档,包括初始化文档、添加元素、设置属性、插入文本以及最终保存文档至...

    dom4j解析xml详解

    ### DOM4J解析XML详解 #### 一、DOM4J简介与特性 DOM4J是一个由dom4j.org开发的开源XML解析包,专为Java平台设计,它不仅支持DOM、SAX和JAXP标准,还巧妙地融入了Java集合框架,使其成为Java开发者在处理XML数据时...

    dom4j解析及生成 xml代码收集

    1. **DOM4J解析XML** - **Document对象**:DOM4J的核心是`Document`对象,它代表整个XML文档。解析XML文件后,DOM4J会构建一个`Document`对象树,你可以通过这个树来访问和操作XML的所有元素。 - **Element对象**...

    Dom4j解析和生成XML文档

    DOM4J通过构建DOM树(Document Object Model)来解析XML。DOM模型是一种将XML文档转换为内存中对象树的表示方式。在DOM4J中,我们可以使用`DocumentBuilderFactory`和`DocumentBuilder`来创建`Document`对象,然后...

    dom4J生成xml、解析xml、生成xml文件实例

    **dom4J生成和解析XML文件** DOM4J是一个强大的Java XML API,它不仅提供了DOM、SAX和JDOM等接口的实现,还提供了一种更简单、更灵活的方式来处理XML文档。这篇博客()可能详细介绍了如何使用DOM4J来生成和解析XML...

    dom4j解析xml文件的压缩包

    5. **事件驱动解析(SAX)**:除了传统的DOM解析外,DOM4J还支持SAX解析器,这种解析方式适用于处理大型XML文件,因为它不需要一次性加载整个文档到内存。 6. **Namespace支持**:DOM4J提供了对XML命名空间的全面...

    生成、解析xml的四种方式(dom,dom4j,sax,jdom)

    本文将详细介绍生成和解析XML的四种主要方法:DOM、DOM4J、SAX和JDOM。 1. DOM(Document Object Model) DOM是W3C组织推荐的一种解析XML的标准方式。它将XML文档视为一个树形结构,每个节点代表XML文档的一部分。...

    java使用dom4j生成与解析xml文档的方法示例

    主要介绍了java使用dom4j生成与解析xml文档的方法,结合实例形式分析了java基于dom4j操作xml节点生成xml文档以及解析xml文档的相关操作技巧,需要的朋友可以参考下

    dom4j 解析写入xml

    1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件

    dom4j API 用于解析XML的java库

    DOM4J作为解析XML的工具,其主要功能和特性包括: 1. **DOM模型**:DOM4J提供了基于DOM(Document Object Model)的接口,允许开发者以树形结构操作XML文档。通过`Document`对象,可以访问XML文档的根元素,并通过`...

    java dom4j解析xml

    Java DOM4J解析XML是一种常见的处理XML文档的技术,它提供了灵活且高效的API,使得开发者能够方便地读取、写入、修改以及操作XML文件。DOM4J是Java中一个非常强大的XML处理库,它结合了DOM、SAX和JDOM的优点,同时也...

    dom4j解析xml

    **DOM4J解析XML** DOM4J是一个Java库,它为处理XML提供了强大的功能,包括读取、写入、修改和操作XML文档。这个库以其灵活性、效率和易用性而受到开发者的青睐。DOM4J是基于DOM(Document Object Model)的,但它...

    dom4j解析xml,利用反射机制

    在这个项目中,我们利用DOM4J来解析XML文件,并通过Java的反射机制将解析出的信息存储到特定的类中。 首先,我们需要了解XML的基本概念。XML(Extensible Markup Language)是一种标记语言,常用于数据交换和结构化...

    JAVA 解析XML生成XML文档实例

    JAVA 解析XML和生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML

    dom4j读取XML,解析XML简单示例

    在本示例中,我们将探讨如何利用DOM4J来读取和解析XML文件,以及如何通过`XMLTest.java`这个示例来理解DOM4J的基本用法。 首先,`XMLTest.java`是一个包含DOM4J操作XML的代码实例。通常,这样的程序会包含以下步骤...

    dom4j生成XML文档及解析

    在这个场景中,我们将深入理解如何使用DOM4J来生成XML文档以及如何解析XML内容。 首先,生成XML文档涉及以下几个主要步骤: 1. **创建Document对象**:`DocumentHelper.createDocument()`方法用于创建一个新的XML...

    XML解析技术DOM4J解析

    DOM4J提供了对XML Schema的全面支持,允许开发者在解析XML文档时进行严格的模式验证,确保数据的准确性和一致性。这对于企业级应用尤为重要,因为它们往往需要处理大量的结构化数据。 **3. 基于事件的处理** 对于...

Global site tag (gtag.js) - Google Analytics