使用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字符串是Java开发中处理XML数据的常见方法。DOM4J是一个非常灵活的用于处理XML、HTML和XSLT的Java库,它提供了丰富的API来操作XML文档,包括创建、读取、修改和遍历XML文档。在本文中,我们将深入...
当我们需要将XML字符串解析并映射到Java Bean对象时,dom4j是一个常用的库。本篇文章将详细探讨如何使用dom4j库实现这个过程。 首先,dom4j是一个强大的Java XML API,它提供了丰富的功能,如读取、写入、修改和...
**DOM4J 读取XML字符串** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得更加简单。DOM4J 的设计理念是简洁、灵活且高性能,它支持 SAX 和 DOM 解析,并提供了面向对象的接口。...
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
在这个实例中,我们使用dom4j的DocumentHelper类来解析XML字符串。首先,我们import dom4j的相关类,包括Document、DocumentException、DocumentHelper和Element等。然后,我们使用DocumentHelper.parseText方法来...
在Java中,我们可以使用DOM4J来解析XML字符串,以下是一个简单的步骤: 1. **导入DOM4J库**:确保项目中已经引入了DOM4J的依赖,如果没有,可以添加对应的Maven或Gradle依赖。 2. **读取XML字符串**:从文件、网络...
1. **解析XML到String** 要将XML文件读取为String,首先需要创建一个`Document`对象,这是DOM4J的核心数据结构,代表整个XML文档。可以使用`DocumentHelper`类的静态方法`parseText()`或`readFile()`来完成这个任务...
上述代码演示了如何使用DOM4J解析XML字符串并获取元素的文本内容。 总结来说,DOM4J是Java开发中处理XML的重要工具,无论是在解析XML文件还是处理XML字符串方面,都能提供高效且易用的解决方案。通过学习和掌握DOM...
在生成XML字符串时,DOM4J提供了简洁的API来构建和输出XML文档。 4. JDOM JDOM是另一个Java的XML处理库,它专注于提供纯Java解决方案。JDOM提供了一个基于树的API,类似于DOM,但设计更简洁,易于使用。与DOM相比,...
标题中的“PB解析XML字符串 把XML 变为数据窗口”指的是使用PowerBuilder(PB)这一编程工具,处理XML格式的数据,并将其转换成数据窗口对象的过程。数据窗口是PowerBuilder中的一个核心组件,用于显示、编辑和管理...
这段代码首先使用`DocumentHelper.parseText`方法解析XML字符串,然后获取根元素并打印其名称,最后找到名为`element`的子元素并输出其内容。 总的来说,DOM4J结合Jaxen库为Java开发者提供了强大且灵活的XML处理...
在`RealPlay`中,使用`loadXML`方法解析XML字符串,而不是`load`方法,因为`loadXML`用于解析内存中的XML字符串。 总结来说,C++通过MSXML库提供了解析XML文档和XML字符串的功能。这使得在C++和不支持指针的语言...
本篇文章将深入探讨如何使用DOM4J来解析XML文件,以及通过示例代码来展示其基本操作。 首先,我们需要理解DOM4J的工作原理。DOM4J采用的是DOM(Document Object Model)模型,它将整个XML文档加载到内存中形成一棵...
2. **解析XML字符串**: 当XML数据作为字符串存在时,可以使用`SAXReader`类解析: ```java SAXReader reader = new SAXReader(); Document document = reader.read(new StringReader(xmlString)); ``` 之后的...
WebService在传递数据的时候只能传递字符串,当我们返回一些简单的字符串时我们可以直接返回,但是当我们想返回比如List,Map等复杂类型的数据时拼接字符串就是个很麻烦的工作,这时我们就用到了dom4j这个工具。
4. **XPath支持**:dom4j支持XPath表达式,允许开发者通过简洁的字符串路径来选取XML文档中的节点,大大提高了代码的可读性和效率。 5. **操作XML**:使用dom4j可以方便地添加、删除、修改XML元素和属性,以及遍历...