`
Everyday都不同
  • 浏览: 723544 次
  • 性别: Icon_minigender_1
  • 来自: 宇宙
社区版块
存档分类
最新评论

使用dom4j来解析xml文件或xml字符串

阅读更多

现有一个配置文件,需要解析出根节点与子节点,还有子节点下属性的信息。虽然w3c.dom规范亦可以解析,但这儿我们尝试使用dom4j的方式来解析。

涉及到的jar包有dom4j-1.6.1.jar

 

xml配置文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans>
	<bean id="computer" class="org.crazyit.app.main.Computer">
		<property name="name" value="孙悟空的智慧型手机" />
		<property name="out" ref="betterPrinter" />
	</bean>
	
	<bean id="printer" class="org.crazyit.app.inter.impl.Printer" />
	<bean id="betterPrinter" class="org.crazyit.app.inter.impl.BetterPrinter" />
	
	<bean id="now" class="java.util.Date" scope="prototype" />
</beans>

 

解析xml配置文件的java类:

SAXReader reader = new SAXReader();
Document doc = reader.read(new File(filePath));
//得到根节点
Element root = doc.getRootElement();

//遍历根节点下的子节点(同样也可以遍历某个含子节点的子节点)
for(Object obj : root.elements()) {
    Element ele = (Element) obj;
//获取子节点的属性
    String beanId = ele.attributeValue("id");
    String beanClazz = ele.attributeValue("class");
    String beanScope = ele.attributeValue("scope");
}

 

 解析xml格式的字符串:

Map map = new HashMap();
 StringReader reader = new StringReader(msg);
 InputSource source = new InputSource(reader);
 SAXReader sr = new SAXReader();

 Document doc = sr.read(source);

//得到Document之后,下面的步骤就跟上面解析xml文件的步骤一致

 

但如果是一般的类型:如html那种配置文件(即不是这种Spring的xml),解析的语法又有不同,如:

 

 Map map = new HashMap();  
        Document doc = null;  
        try {  
            doc = DocumentHelper.parseText(xml); // 将字符串转为XML  
  
            Element rootElt = doc.getRootElement(); // 获取根节点  
  
            System.out.println("根节点:" + rootElt.getName()); // 拿到根节点的名称  
  
  
            Iterator iter = rootElt.elementIterator("head"); // 获取根节点下的子节点head  
  
            // 遍历head节点  
  
            while (iter.hasNext()) {  
  
                Element recordEle = (Element) iter.next();  
                String title = recordEle.elementTextTrim("title"); // 拿到head节点下的子节点title值  
  
                System.out.println("title:" + title);  
                map.put("title", title);  
  
                Iterator iters = recordEle.elementIterator("script"); // 获取子节点head下的子节点script  
  
  
                // 遍历Header节点下的Response节点(如果子节点下又有子节点的话,继续遍历)  
  
               
        
  
            Iterator iterss = rootElt.elementIterator("body"); ///获取根节点下的子节点body  
  
            // 遍历body节点  
  
            while (iterss.hasNext()) {  
                Element recordEless = (Element) iterss.next();  
                String result = recordEless.elementTextTrim("result"); // 拿到body节点下的子节点result值  
  
                System.out.println("result:" + result);  
  
                Iterator itersElIterator = recordEless.elementIterator("form"); // 获取子节点body下的子节点from 
  
                // 遍历body节点下的from节点  
  
               
            }  
        } catch (DocumentException e) {  
            e.printStackTrace();  
        } catch (Exception e) {  
            e.printStackTrace();  
        }  
        return map;  
    }  
  
 

 

 

分享到:
评论

相关推荐

    dom4j解析xml字符串

    // 下面的是通过解析xml字符串的 doc = DocumentHelper.parseText(xml); // 将字符串转为XML Element rootElt = doc.getRootElement(); // 获取根节点 System.out.println("根节点:"+ rootElt.getName()); // ...

    dom4j解析xml字符串实例

    dom4j解析xml字符串实例

    dom4j 解析写入xml

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

    使用javascript解析xml文件或xml格式字符串中文WORD版

    资源名称:使用Javascript解析xml文件或xml格式字符串 中文WORD版   内容简介: 本文档主要讲述的是使用Javascript解析xml文件或xml格式字符串;javascript中,不论是解析xml文件,...

    使用dom4j将xml字符串转换成Bean对象

    当我们需要将XML字符串解析并映射到Java Bean对象时,dom4j是一个常用的库。本篇文章将详细探讨如何使用dom4j库实现这个过程。 首先,dom4j是一个强大的Java XML API,它提供了丰富的功能,如读取、写入、修改和...

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

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

    用dom4j解析xml文件

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

    DOM4J jar包 xml解析 所有的dom4j-1.6.1 dom4j-2.0.2 dom4j-2.1.1包 导入直接使用

    在项目中使用DOM4J时,只需将相应的jar包(如dom4j-1.6.1.jar、dom4j-2.0.2.jar或dom4j-2.1.1.jar)导入到类路径中,即可开始利用其功能处理XML文档。导入后,可以按照DOM4J提供的API进行编程,快速实现XML的读写...

    DOM4J 读取xml字符串

    **DOM4J 读取XML字符串** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得更加简单。DOM4J 的设计理念是简洁、灵活且高性能,它支持 SAX 和 DOM 解析,并提供了面向对象的接口。...

    C++解析xml文档或者xml字符串方法

    在C++中,解析XML文档或XML字符串是常见的任务,特别是在需要与JavaScript或其他不支持指针的语言交互时。本文将详细介绍如何在Visual Studio 2010环境下利用Microsoft的MSXML库来处理XML数据。 首先,让我们看看...

    dom4j解析XML所需要的jar包

    这段代码首先使用`DocumentHelper.parseText`方法解析XML字符串,然后获取根元素并打印其名称,最后找到名为`element`的子元素并输出其内容。 总的来说,DOM4J结合Jaxen库为Java开发者提供了强大且灵活的XML处理...

    XSD使用dom4j校验XML

    接下来,我们来看看如何使用DOM4J来解析和校验XML文档。DOM4J提供了一种简单的方法来加载XML和XSD文件,然后使用Schema类进行校验。以下是一个基本的步骤概述: 1. 加载XSD文件:使用DOM4J的DocumentHelper类的...

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

    在提供的源码中,我们可以看到如何使用DOM4J来解析XML文件。例如,以下代码展示了如何读取XML文件并打印根元素: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io....

    dom4j解析字符串

    * 高性能:dom4j使用SAX机制来解析XML文件和字符串,从而提高了解析速度。 * 强大功能:dom4j提供了完整的XML解析功能,包括读取、写入、遍历和修改XML文档。 * 易用性:dom4j的API设计简单易用,易于理解和使用。 ...

    DOM、SAX、DOM4J、JDOM、StAX生成XML并返回XML字符串形式

    在生成XML字符串时,DOM4J提供了简洁的API来构建和输出XML文档。 4. JDOM JDOM是另一个Java的XML处理库,它专注于提供纯Java解决方案。JDOM提供了一个基于树的API,类似于DOM,但设计更简洁,易于使用。与DOM相比,...

    Dom4j解析和生成XML文档

    生成XML文档时,DOM4J允许我们通过创建`Element`、`Attribute`等对象,构建一个内存中的XML结构,然后将其转换为XML字符串或写入文件。 1. 创建`Document`对象:`Document document = DocumentFactory.getInstance...

    DOM与DOM4J解析XML文档的详细讲解

    - 加载XML文档:使用DOM解析器将XML字符串或文件加载成内存中的DOM树。 - 遍历和操作:通过节点API遍历DOM树,获取或修改XML信息。 - 保存或输出:修改后的DOM树可以转换回XML字符串,保存或输出。 二、DOM4J库 ...

Global site tag (gtag.js) - Google Analytics