`
wangzemin
  • 浏览: 13793 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

dom4j解析xml字符串

阅读更多

使用dom4j将xml字符串解析为map:

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;

@SuppressWarnings("unchecked")
public class XmlParser {
	public static Map<String,Object> readData(Element ele){
    	Map<String,Object> map = new HashMap<String,Object>();
    	//得到元素列表遍历
		List<Element> eList = ele.elements();
        for(Element e : eList){
        	if(e.elements().isEmpty()){
        		//如果该元素子元素为空,则直接获取文本
        		// e.getData() e.getStringValue();e.getText()e.getTextTrim()
        		map.put(e.getName(), e.getText());
        	}else{
        		//若有子元素,则递归取值
        		map.put(e.getName(), readData(e));
        	}
        }
    	return map;
    }
	public static Map<String,Object> readXml(String xml){
    	Map<String,Object> map = null;
    	try{
    		Document doc = DocumentHelper.parseText(xml);
        	// 获取根节点
            Element rootElt = doc.getRootElement();
            //通过根节点获取数据
            map = readData(rootElt);
    	}catch(Exception e){
    		e.printStackTrace();
    	}
    	return map;
    }
	public static void main(String[] args) {
		 String str = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><root><a><c> 6  6 </c></a><b>2</b></root>";
    	 Map<String,Object> root = readXml(str);
    	 for (Map.Entry<String, Object> entry : root.entrySet()) {  
    		 System.out.println(entry.getKey() + ":" + entry.getValue());  
    	 }
	}
}

 备注:

1)代码中使用元素名称作为key,如果需要使用某些属性值作为key,可以使用attributeValue方法取得名称作为key。

2)取得节点值有四个方法:e.getData() e.getStringValue() e.getText() e.getTextTrim()

其中getText和getTextTrim两个的区别看名称就可以理解,getTextTrim是取除左右空格的(内容中如果有两个或两个以上的空格会转为一个空格);getStringValue是取该节点下全部的string,若有子标签,会将子标签中的文本拼成一个字符串返回,说白了就是将该元素下所有的元素标签去掉以后的内容的拼接;getData的话,经过测试,所得结果和getText一致。

3)使用反射可以将map转换为Javabean对象(代码懒得写了=_=)。

分享到:
评论

相关推荐

    dom4j解析xml字符串实例

    dom4j解析xml字符串实例

    通过dom4j解析xml字符串(示例代码)

    通过DOM4J解析XML字符串是Java开发中处理XML数据的常见方法。DOM4J是一个非常灵活的用于处理XML、HTML和XSLT的Java库,它提供了丰富的API来操作XML文档,包括创建、读取、修改和遍历XML文档。在本文中,我们将深入...

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

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

    DOM4J 读取xml字符串

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

    dom4j 解析写入xml

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

    dom4j解析字符串

    在这个实例中,我们使用dom4j的DocumentHelper类来解析XML字符串。首先,我们import dom4j的相关类,包括Document、DocumentException、DocumentHelper和Element等。然后,我们使用DocumentHelper.parseText方法来...

    xml字符串解析

    在Java中,我们可以使用DOM4J来解析XML字符串,以下是一个简单的步骤: 1. **导入DOM4J库**:确保项目中已经引入了DOM4J的依赖,如果没有,可以添加对应的Maven或Gradle依赖。 2. **读取XML字符串**:从文件、网络...

    dom4j以String的方式读取XML的内容,并给String的值赋值,写入XML中

    1. **解析XML到String** 要将XML文件读取为String,首先需要创建一个`Document`对象,这是DOM4J的核心数据结构,代表整个XML文档。可以使用`DocumentHelper`类的静态方法`parseText()`或`readFile()`来完成这个任务...

    dom4j 解析xml

    上述代码演示了如何使用DOM4J解析XML字符串并获取元素的文本内容。 总结来说,DOM4J是Java开发中处理XML的重要工具,无论是在解析XML文件还是处理XML字符串方面,都能提供高效且易用的解决方案。通过学习和掌握DOM...

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

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

    PB解析XML字符串 把XML 变为数据窗口

    标题中的“PB解析XML字符串 把XML 变为数据窗口”指的是使用PowerBuilder(PB)这一编程工具,处理XML格式的数据,并将其转换成数据窗口对象的过程。数据窗口是PowerBuilder中的一个核心组件,用于显示、编辑和管理...

    dom4j解析XML所需要的jar包

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

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

    在`RealPlay`中,使用`loadXML`方法解析XML字符串,而不是`load`方法,因为`loadXML`用于解析内存中的XML字符串。 总结来说,C++通过MSXML库提供了解析XML文档和XML字符串的功能。这使得在C++和不支持指针的语言...

    用dom4j解析xml文件

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

    dom4j解析xml和soap报文

    2. **解析XML字符串**: 当XML数据作为字符串存在时,可以使用`SAXReader`类解析: ```java SAXReader reader = new SAXReader(); Document document = reader.read(new StringReader(xmlString)); ``` 之后的...

    webservice是用dom4j返回xml字符串

    WebService在传递数据的时候只能传递字符串,当我们返回一些简单的字符串时我们可以直接返回,但是当我们想返回比如List,Map等复杂类型的数据时拼接字符串就是个很麻烦的工作,这时我们就用到了dom4j这个工具。

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

    4. **XPath支持**:dom4j支持XPath表达式,允许开发者通过简洁的字符串路径来选取XML文档中的节点,大大提高了代码的可读性和效率。 5. **操作XML**:使用dom4j可以方便地添加、删除、修改XML元素和属性,以及遍历...

Global site tag (gtag.js) - Google Analytics