`
java-mans
  • 浏览: 11710991 次
文章分类
社区版块
存档分类
最新评论

Dom4j解析XML应用总结

 
阅读更多
一.最常用到的API
1.getRootElement():隶属于Document类,返回XML文档的根元素
setRootElement(Element rootElement) :设置给定元素为相应文档的根元素
2.asXML():隶属于Node类,用于将XML转换为String
3.DocumentHelper类常用API:
createDocument():创建一个Document对象
parseText(String text):解析给定Xml的文本,生成Document对象。
 3.Element类中常用到API
attributeValue(String name) :获取元素String值。
elementIterator() :返回元素的所有子元素的Iterator迭代器。
elements() :返回元素包含所有子元素List。
getParent() :获取父元素Element。
getPath() :获取自己的xpath。
detach() :移除自己。
getName() :获取节点的名称。
selectNodes(String xpathExpression) :通过XPATH获取节点。
selectSingleNode(String xpathExpression) :通过XPATH获取一个节点。

getDocument() :作为一个Document返回。

二. 具体例子
1.XML文件内容:

<?xml version="1.0" encoding="utf-8"?>
<students>
    <student id="1" sex="female">
        <name>zhangsan</name>
        <age>21</age>
        <address>
            <add code="home">zhengzhou</add>
            <add code="company">HIST</add>
        </address>
    </student>
    <student id="2" sex="male">
        <name>wangwu</name>
        <age>16</age>
        <address>
            <add code="home">beijing</add>
            <add code="company">dongzhi</add>
        </address>
    </student>
</students>

2.测试代码:

public class ParseXmlExample {
    public void parseXmlDoc(String xmlFile){
        SAXReader saxReader=new SAXReader();
        Document doc=null;
        try {
            doc=saxReader.read(ParseXmlExample.class.getResourceAsStream(xmlFile));
        } catch (DocumentException e) {
            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
        }
        Element rootElement=doc.getRootElement();
        for(Iterator iterator=rootElement.elementIterator();iterator.hasNext();){
            Element e_stu=(Element)iterator.next();
            String student=e_stu.getName();
            String id=e_stu.attributeValue("id");
            String sex=e_stu.attributeValue("sex");
            String name=e_stu.element("name").getText();
            Element address=e_stu.element("address");
            StringBuilder sb=new StringBuilder();
            sb.append(student+"\n");
            sb.append("\t"+"id:"+id+"\t"+"sex:"+sex+"\n");
            sb.append("\t"+"name:"+name+"\n");
            sb.append("\t"+address.getName()+"\n");
            for(Iterator ad=address.elementIterator();ad.hasNext();){
                Element e_com=(Element)ad.next();
                String code=e_com.attributeValue("code");
                String value=e_com.getText();
                sb.append("\t\t"+code+":"+value+"\n");
            }
            System.out.println(sb.toString());
        }
    }
    public static void main(String[] argv){
        new ParseXmlExample().parseXmlDoc("students.xml");
    }
}

运行结果:
student
id:1 sex:female
name:zhangsan
address
home:zhengzhou
company:HIST

student
id:2 sex:male
name:wangwu
address
home:beijing

company:dongzhi


将一段符合xml标准的string转换成xml文档中的element对象(使用dom4j)

	 private static Element getElementFromString(String s) {

		SAXReader builder = new SAXReader();
		Document doc = null;
		Element element = null;
		try {
			doc = builder.read(new StringReader(s));
		} catch (DocumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		if (doc != null) {
			element = doc.getRootElement();
		}

		return element;
	}


分享到:
评论

相关推荐

    dom4j解析xml详解

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

    dom4j解析xml

    ### DOM4J解析XML知识点详解 #### 一、DOM4J简介 DOM4J是一个Java库,用于处理XML文档。它的设计目标是为了提供一个简单、易于使用的API来处理XML文件,同时保持性能上的优势。与Java标准库中的DOM实现相比,DOM4J...

    dom4j解析XML所需jar包

    总结来说,DOM4J是一个全面且易用的XML处理工具,广泛应用于Java开发中。通过`dom4j-1.6.1.jar`和`jaxen-1.1.1.jar`这两个jar包,开发者可以获得完整的DOM4J功能,实现XML的解析、构建、查询和转换等一系列操作。

    分别使用DOM和DOM4j解析XML文件

    以下是如何使用DOM4j解析XML: 1. 引入DOM4j库(如:dom4j-1.6.1.jar)。 2. 创建DocumentFactory实例。 3. 使用DocumentFactory的read()方法读取XML文件,得到Document对象。 4. 使用Document对象提供的方法(如...

    dom4j解析XML文档.ppt

    DOM4J是一个强大的Java库,专门用于解析XML文档。它提供了简单易用的API,使得开发者可以更加方便地处理XML数据。DOM4J的核心优势在于它的面向接口编程设计,这使得它能够在不同的解析机制间灵活切换,如DOM、SAX和...

    DOM4J解析XML代码

    ### 什么是XML文件 XML(Extensible Markup Language,可扩展标记语言)是一种标记语言,用于存储和传输数据。...掌握DOM4J解析XML的技术对于处理XML数据流以及Java应用程序中的数据交换具有重要意义。

    Java使用sax、dom、dom4j解析xml文档

    以下是一个DOM4J解析XML的简单示例: ```java import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; public class Dom4jExample { public static void main(String[] args) {...

    用dom4j解析xml文件

    本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...

    dom4j-jar与dom4j解析xml文档介绍

    "dom4j-jar与dom4j解析xml文档介绍" 这个标题告诉我们,我们将探讨的是一个关于dom4j库的jar文件,以及如何使用这个库来解析XML文档。dom4j是一个Java库,它提供了丰富的API用于处理XML、HTML和DOM文档。这里的"jar...

    xmldom4j解析

    三、DOM4J解析XML 1. 创建Document对象:使用`DocumentFactory`创建XML文档的根元素,然后逐步构建整个文档。 2. 读取XML文件:通过`DocumentHelper.parseText()`或`SAXReader.read()`方法读取XML文件到Document对象...

    使用DOM4j解析XML文件

    ### 使用DOM4j解析XML文件:提升开发效率与代码可读性 在现代软件开发中,XML(Extensible Markup Language)是一种广泛使用的数据交换格式,它以人类可读的文本形式存储结构化信息。然而,如何高效、准确地解析XML...

    Dom4J解析XML源代码

    接下来,我们将通过几个关键步骤来演示如何使用Dom4J解析XML文件: 1. **加载XML文档**:使用`DocumentFactory`创建一个`Document`对象,该对象代表整个XML文档。可以使用`DocumentHelper.parseText()`或`SAXReader...

    Dom4j解析XML及中文问题

    本文将深入探讨如何使用Dom4j解析XML以及解决中文乱码的问题。 首先,让我们了解Dom4j的基本用法。在解析XML文件时,通常会使用`DocumentBuilderFactory`和`DocumentBuilder`来创建一个`Document`对象,然后通过这...

    Java解析xml配置文件,DOM4J解析xml配置文件,提供使用文档和源码下载

    在本教程中,我们将深入探讨如何使用DOM4J解析XML配置文件,并模拟处理`web.xml`中的`url-pattern`元素。 首先,让我们了解DOM4J的基本概念。DOM4J是一个基于Java的DOM模型的XML库,它扩展了标准的DOM API,增加了...

    DOM4J解析XML时DTD路径问题

    ### DOM4J解析XML时DTD路径问题 在处理XML文件时,经常需要用到DOM4J这样的库来进行解析。当XML文件包含DTD(Document Type Definition)声明时,DOM4J默认会尝试从指定的URL加载DTD文件来进行验证。这通常是为了...

    dom4j---xml解析jar包

    在Java环境中,解析XML文档时,我们通常会遇到各种库,其中DOM4J是一个非常流行的、功能强大的开放源代码库。这个库不仅简化了XML处理,还提供了XPath和XSLT的支持,使其成为Java开发者处理XML的首选工具之一。 **...

    dom4j解析xml详解,包含源代码,dom4j.jar包

    本篇将深入讲解DOM4J解析XML的原理与实践,同时提供相关源代码供参考。 一、DOM4J概述 DOM4J是基于DOM模型的,但它比Java标准的DOM API更轻量级,性能更优。DOM4J的主要特点包括: 1. 支持XPath:DOM4J提供了对...

    dom4j解析xml和soap报文

    在本文中,我们将深入探讨如何使用DOM4J解析XML和SOAP报文,以及如何从中提取所需字段。 首先,理解XML是非常重要的。XML(可扩展标记语言)是一种用于标记数据的语言,允许我们以结构化的方式存储和传输信息。DOM4...

    DOM4J解析XML

    1. **DOM解析方式**:DOM4J通过DOM接口来解析XML,将整个XML文档加载到内存中形成一个树形结构,称为DOM树。这样做的优点是可以方便地通过路径导航访问任何元素,缺点是如果XML文件过大,可能会消耗大量内存。 2. *...

Global site tag (gtag.js) - Google Analytics