- 1、xml文档或节点转换为字符串
- //xml文档或节点转换为字符串
- @Test
- public void test5()throws Exception{
- //创建SAXReader对象
- SAXReader reader = new SAXReader();
- //读取文件 转换成Document
- Document document = reader.read(new File("src/cn/com/yy/dom4j/s.xml"));
- //document转换为String字符串
- String documentStr = document.asXML();
- System.out.println("document 字符串:" + documentStr);
- //获取根节点
- Element root = document.getRootElement();
- //根节点转换为String字符串
- String rootStr = root.asXML();
- System.out.println("root 字符串:" + rootStr);
- //获取其中student1节点
- Element student1Node = root.element("student1");
- //student1节点转换为String字符串
- String student1Str = student1Node.asXML();
- System.out.println("student1 字符串:" + student1Str);
- package com.smsServer.Dhst;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import org.dom4j.Document;
- import org.dom4j.DocumentException;
- import org.dom4j.DocumentHelper;
- import org.dom4j.Element;
- import com.common.object.SmsSendResponseObject;
- /**
- * @description 解析xml字符串
- */
- public class Test {
- public void readStringXml(String xml) {
- Document doc = null;
- try {
- // 读取并解析XML文档
- // SAXReader就是一个管道,用一个流的方式,把xml文件读出来
- // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档
- // Document document = reader.read(new File("User.hbm.xml"));
- // 下面的是通过解析xml字符串的
- 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);
- Iterator iters = recordEle.elementIterator("script"); // 获取子节点head下的子节点script
- // 遍历Header节点下的Response节点
- while (iters.hasNext()) {
- Element itemEle = (Element) iters.next();
- String username = itemEle.elementTextTrim("username"); // 拿到head下的子节点script下的字节点username的值
- String password = itemEle.elementTextTrim("password");
- System.out.println("username:" + username);
- System.out.println("password:" + password);
- }
- }
- 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下的子节点form
- // 遍历Header节点下的Response节点
- while (itersElIterator.hasNext()) {
- Element itemEle = (Element) itersElIterator.next();
- String banlce = itemEle.elementTextTrim("banlce"); // 拿到body下的子节点form下的字节点banlce的值
- String subID = itemEle.elementTextTrim("subID");
- System.out.println("banlce:" + banlce);
- System.out.println("subID:" + subID);
- }
- }
- } catch (DocumentException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- /**
- * @description 将xml字符串转换成map
- * @param xml
- * @return Map
- */
- public static Map readStringXmlOut(String 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节点
- while (iters.hasNext()) {
- Element itemEle = (Element) iters.next();
- String username = itemEle.elementTextTrim("username"); // 拿到head下的子节点script下的字节点username的值
- String password = itemEle.elementTextTrim("password");
- System.out.println("username:" + username);
- System.out.println("password:" + password);
- map.put("username", username);
- map.put("password", password);
- }
- }
- 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下的子节点form
- // 遍历Header节点下的Response节点
- while (itersElIterator.hasNext()) {
- Element itemEle = (Element) itersElIterator.next();
- String banlce = itemEle.elementTextTrim("banlce"); // 拿到body下的子节点form下的字节点banlce的值
- String subID = itemEle.elementTextTrim("subID");
- System.out.println("banlce:" + banlce);
- System.out.println("subID:" + subID);
- map.put("result", result);
- map.put("banlce", banlce);
- map.put("subID", subID);
- }
- }
- } catch (DocumentException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return map;
- }
- public static void parse(String xml)
- {
- Document doc = null;
- try {
- doc = DocumentHelper.parseText(xml); // 将字符串转为XML
- Element rootElt = doc.getRootElement(); // 获取根节点smsReport
- Iterator iters = rootElt.elementIterator("sendResp"); // 获取根节点下的子节点sms
- while (iters.hasNext()) {
- Element recordEle1 = (Element) iters.next();
- Iterator iter = recordEle1.elementIterator("sms");
- int i=0;
- // 遍历sms节点
- while (iter.hasNext()) {
- Element recordEle = (Element) iter.next();
- SmsSendResponseObject r = new SmsSendResponseObject();
- String phone = recordEle.elementTextTrim("phone"); // 拿到sms节点下的子节点stat值
- String smsID = recordEle.elementTextTrim("smsID"); // 拿到sms节点下的子节点stat值
- System.out.println(phone+"==="+smsID);
- }
- }
- } catch (DocumentException e) {
- e.printStackTrace();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- public static void main(String[] args) {
- // 下面是需要解析的xml字符串例子
- String xmlString = "" + "" + ""
- + "" + ""
- + "" + "0" + ""
- + "1000" + "36242519880716"
- + "" + " " + "";
- /*
- * Test2 test = new Test2(); test.readStringXml(xmlString);
- */
- Map map = readStringXmlOut(xmlString);
- Iterator iters = map.keySet().iterator();
- while (iters.hasNext()) {
- String key = iters.next().toString(); // 拿到键
- String val = map.get(key).toString(); // 拿到值
- System.out.println(key + "=" + val);
- }
- String xml="137000000ff8080813349da9001334f0eed8c5923187000000ff8080813349da9001334f0eee045924";
- parse(xml);
- }
- }
运行之后的结果会是:
根节点:html
title:dom4j解析一个例子
username:yangrong
password:123456
result:0
banlce:1000
subID:36242519880716
result=0
username=yangrong
title=dom4j解析一个例子
subID=36242519880716
banlce=1000
password=123456
137000000===ff8080813349da9001334f0eed8c5923
187000000===ff8080813349da9001334f0eee045924
相关推荐
Java解析XML时,dom4j是一个非常流行的库,它提供了灵活且强大的API来处理XML文档。dom4j-1.6.1.jar是这个库的一个版本,发布于2005年,它支持XML的读取、写入、操作以及查询功能。在本文中,我们将深入探讨dom4j的...
当我们需要将XML字符串解析并映射到Java Bean对象时,dom4j是一个常用的库。本篇文章将详细探讨如何使用dom4j库实现这个过程。 首先,dom4j是一个强大的Java XML API,它提供了丰富的功能,如读取、写入、修改和...
本篇将详细介绍使用DOM4j.Jar和JDOM.jar这两个Java库来解析XML文件的方法。 **DOM4j** DOM4j是一个灵活且功能强大的Java XML API,它提供了全面的XML处理解决方案,包括读取、写入、操作和转换XML文档。DOM4j的...
在Java中,我们可以使用DOM4J来解析XML字符串,以下是一个简单的步骤: 1. **导入DOM4J库**:确保项目中已经引入了DOM4J的依赖,如果没有,可以添加对应的Maven或Gradle依赖。 2. **读取XML字符串**:从文件、网络...
1. **解析XML**:DOM4J可以读取XML文件,将其转换为一个树形结构,即Document对象。解析器有SAX和DOM两种模式,SAX是事件驱动的,适用于大文件,而DOM则将整个文档加载到内存中,适合小文件。 2. **创建XML**:DOM4...
在生成XML字符串时,DOM4J提供了简洁的API来构建和输出XML文档。 4. JDOM JDOM是另一个Java的XML处理库,它专注于提供纯Java解决方案。JDOM提供了一个基于树的API,类似于DOM,但设计更简洁,易于使用。与DOM相比,...
1、xml文档解析 2、 dom4j解析xml 3、实现xml文件解析 xml字符串解析 xml MAP键值对解析 4、实现xml写入与生成文件
**DOM4J 读取XML字符串** DOM4J 是一个非常强大的 Java XML API,它提供了丰富的功能,使得处理 XML 文件变得更加简单。DOM4J 的设计理念是简洁、灵活且高性能,它支持 SAX 和 DOM 解析,并提供了面向对象的接口。...
`xmlToMap`方法首先使用SAXReader解析XML字符串,然后递归地遍历XML文档的元素,将它们转换为Map结构。 `mapToXml`方法则将Map转换成XML字符串: ```java import org.dom4j.Document; import org.dom4j....
本文将深入探讨XML数据在前后台解析的过程中,重点介绍两种主流的Java XML解析库——JDOM和DOM4J,并提供实际运行的程序示例。同时,我们还会讨论如何使用jQuery在前端解析XML并展示数据。 首先,让我们了解XML的...
DOM4J是一个强大的Java库,专门用于处理XML文档。它提供了灵活且高效的API,使得XML的解析、创建、修改变得更加简单。在这个场景中,我们关注的是如何使用DOM4J以String的形式读取XML内容,然后将String的值赋给XML...
通过DOM4J解析XML字符串是Java开发中处理XML数据的常见方法。DOM4J是一个非常灵活的用于处理XML、HTML和XSLT的Java库,它提供了丰富的API来操作XML文档,包括创建、读取、修改和遍历XML文档。在本文中,我们将深入...
在这个实例中,我们使用dom4j的DocumentHelper类来解析XML字符串。首先,我们import dom4j的相关类,包括Document、DocumentException、DocumentHelper和Element等。然后,我们使用DocumentHelper.parseText方法来...
这段代码首先使用`DocumentHelper.parseText`方法解析XML字符串,然后获取根元素并打印其名称,最后找到名为`element`的子元素并输出其内容。 总的来说,DOM4J结合Jaxen库为Java开发者提供了强大且灵活的XML处理...
DOM4J是一个强大的Java库,用于处理XML文档,包括读取、写入、修改和解析。本篇文章将深入探讨如何利用DOM4J解析SOAP消息中的元素,以便在实际项目中进行有效的数据提取和操作。 首先,理解SOAP消息的结构至关重要...
在这个例子中,我们首先使用DOM4J的`DocumentHelper.parseText`方法解析XML字符串,然后创建一个`DOMXPath`对象并使用XPath表达式"/root/element"找到`root`元素下的第一个`element`元素。接着,我们改变这个元素的...
// 输出XML字符串 System.out.println(document.asXML()); } } ``` 这段代码将创建一个简单的XML文档,其中包含一个名为"root"的根元素,根元素下有一个名为"child"的子元素,其内容为"Hello, World!"。 总结,...
在提供的源码中,我们可以看到如何使用DOM4J来解析XML文件。例如,以下代码展示了如何读取XML文件并打印根元素: ```java import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.io....