dom4j解析xml字符串

java dom4j 解析xml字符串的操作实例 package test; 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 阅读详情
  1. package com.smsServer.Dhst;

  2. import java.util.HashMap;
  3. import java.util.Iterator;
  4. import java.util.Map;

  5. import org.dom4j.Document;
  6. import org.dom4j.DocumentException;
  7. import org.dom4j.DocumentHelper;
  8. import org.dom4j.Element;

  9. import com.common.object.SmsSendResponseObject;

  10. /**
  11.  * @description 解析xml字符串
  12.  */
  13. public class Test{

  14.     public void readStringXml(Stringxml) {
  15.         Document doc = null;
  16.         try {

  17.             // 读取并解析XML文档

  18.             // SAXReader就是一个管道,用一个流的方式,把xml文件读出来

  19.             // SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文档

  20.             // Document document = reader.read(new File("User.hbm.xml"));

  21.             // 下面的是通过解析xml字符串的

  22.             doc = DocumentHelper.parseText(xml);// 将字符串转为XML


  23.             Element rootElt = doc.getRootElement();// 获取根节点

  24.             System.out.println("根节点:"+ rootElt.getName());// 拿到根节点的名称


  25.             Iterator iter = rootElt.elementIterator("head");// 获取根节点下的子节点head


  26.             // 遍历head节点

  27.             while (iter.hasNext()){

  28.                 Element recordEle = (Element) iter.next();
  29.                 String title = recordEle.elementTextTrim("title");// 拿到head节点下的子节点title值

  30.                 System.out.println("title:"+ title);

  31.                 Iterator iters = recordEle.elementIterator("script");// 获取子节点head下的子节点script


  32.                 // 遍历Header节点下的Response节点

  33.                 while (iters.hasNext()){

  34.                     Element itemEle = (Element) iters.next();

  35.                     String username = itemEle.elementTextTrim("username");// 拿到head下的子节点script下的字节点username的值

  36.                     String password = itemEle.elementTextTrim("password");

  37.                     System.out.println("username:"+ username);
  38.                     System.out.println("password:"+ password);
  39.                 }
  40.             }
  41.             Iterator iterss = rootElt.elementIterator("body");///获取根节点下的子节点body

  42.             // 遍历body节点

  43.             while (iterss.hasNext()){

  44.                 Element recordEless = (Element) iterss.next();
  45.                 String result = recordEless.elementTextTrim("result");// 拿到body节点下的子节点result值

  46.                 System.out.println("result:"+ result);

  47.                 Iterator itersElIterator = recordEless.elementIterator("form");// 获取子节点body下的子节点form

  48.                 // 遍历Header节点下的Response节点

  49.                 while (itersElIterator.hasNext()){

  50.                     Element itemEle = (Element) itersElIterator.next();

  51.                     String banlce = itemEle.elementTextTrim("banlce");// 拿到body下的子节点form下的字节点banlce的值

  52.                     String subID = itemEle.elementTextTrim("subID");

  53.                     System.out.println("banlce:"+ banlce);
  54.                     System.out.println("subID:"+ subID);
  55.                 }
  56.             }
  57.         } catch(DocumentException e){
  58.             e.printStackTrace();

  59.         } catch(Exception e){
  60.             e.printStackTrace();

  61.         }
  62.     }

  63.     /**
  64.      * @description 将xml字符串转换成map
  65.      * @param xml
  66.      * @return Map
  67.      */
  68.     public staticMap readStringXmlOut(Stringxml) {
  69.         Map map= new HashMap();
  70.         Document doc = null;
  71.         try {
  72.             doc = DocumentHelper.parseText(xml);// 将字符串转为XML

  73.             Element rootElt = doc.getRootElement();// 获取根节点

  74.             System.out.println("根节点:"+ rootElt.getName());// 拿到根节点的名称


  75.             Iterator iter = rootElt.elementIterator("head");// 获取根节点下的子节点head

  76.             // 遍历head节点

  77.             while (iter.hasNext()){

  78.                 Element recordEle = (Element) iter.next();
  79.                 String title = recordEle.elementTextTrim("title");// 拿到head节点下的子节点title值

  80.                 System.out.println("title:"+ title);
  81.                 map.put("title", title);

  82.                 Iterator iters = recordEle.elementIterator("script");// 获取子节点head下的子节点script


  83.                 // 遍历Header节点下的Response节点

  84.                 while (iters.hasNext()){

  85.                     Element itemEle = (Element) iters.next();

  86.                     String username = itemEle.elementTextTrim("username");// 拿到head下的子节点script下的字节点username的值

  87.                     String password = itemEle.elementTextTrim("password");

  88.                     System.out.println("username:"+ username);
  89.                     System.out.println("password:"+ password);
  90.                     map.put("username", username);
  91.                     map.put("password", password);

  92.                 }
  93.             }

  94.             Iterator iterss = rootElt.elementIterator("body");///获取根节点下的子节点body

  95.             // 遍历body节点

  96.             while (iterss.hasNext()){
  97.                 Element recordEless = (Element) iterss.next();
  98.                 String result = recordEless.elementTextTrim("result");// 拿到body节点下的子节点result值

  99.                 System.out.println("result:"+ result);

  100.                 Iterator itersElIterator = recordEless.elementIterator("form");// 获取子节点body下的子节点form

  101.                 // 遍历Header节点下的Response节点

  102.                 while (itersElIterator.hasNext()){

  103.                     Element itemEle = (Element) itersElIterator.next();

  104.                     String banlce = itemEle.elementTextTrim("banlce");// 拿到body下的子节点form下的字节点banlce的值

  105.                     String subID = itemEle.elementTextTrim("subID");

  106.                     System.out.println("banlce:"+ banlce);
  107.                     System.out.println("subID:"+ subID);
  108.                     map.put("result",result);
  109.                     map.put("banlce", banlce);
  110.                     map.put("subID", subID);
  111.                 }
  112.             }
  113.         } catch(DocumentException e){
  114.             e.printStackTrace();
  115.         } catch(Exception e){
  116.             e.printStackTrace();
  117.         }
  118.         return map;
  119.     }
  120.     public staticvoid parse(Stringxml)
  121.     {
  122.         Document doc = null;
  123.         try {
  124.             doc = DocumentHelper.parseText(xml);// 将字符串转为XML

  125.             Element rootElt = doc.getRootElement();// 获取根节点smsReport

  126.             Iterator iters = rootElt.elementIterator("sendResp");// 获取根节点下的子节点sms

  127.             while (iters.hasNext()){
  128.                 Element recordEle1 = (Element) iters.next();
  129.                 Iterator iter = recordEle1.elementIterator("sms");
  130.                 int i=0;
  131.                 // 遍历sms节点

  132.                 while (iter.hasNext()){
  133.                     Element recordEle = (Element) iter.next();
  134.                     SmsSendResponseObject r =new SmsSendResponseObject();
  135.                     String phone = recordEle.elementTextTrim("phone");// 拿到sms节点下的子节点stat值

  136.                     String smsID = recordEle.elementTextTrim("smsID");// 拿到sms节点下的子节点stat值

  137.                     System.out.println(phone+"==="+smsID);
  138.                 }
  139.             }
  140.         } catch(DocumentException e){
  141.             e.printStackTrace();
  142.         } catch(Exception e){
  143.             e.printStackTrace();
  144.         }
  145.     }
  146.     public staticvoid main(String[] args){

  147.         // 下面是需要解析的xml字符串例子

  148.         String xmlString = "<html>" + "<head>" + "<title>dom4j解析一个例子</title>"
  149.                 + "<script>" + "<username>yangrong</username>"
  150.                 + "<password>123456</password>" + "</script>" + "</head>"
  151.                 + "<body>" + "<result>0</result>" + "<form>"
  152.                 + "<banlce>1000</banlce>" + "<subID>36242519880716</subID>"
  153.                 + "</form>" + "</body>" + "</html>";

  154.         /*
  155.          * Test2 test = new Test2(); test.readStringXml(xmlString);
  156.          */
  157.         Map map= readStringXmlOut(xmlString);
  158.         Iterator iters = map.keySet().iterator();
  159.         while (iters.hasNext()){
  160.             String key = iters.next().toString();// 拿到键

  161.             String val = map.get(key).toString();// 拿到值

  162.             System.out.println(key+ "=" + val);
  163.         }
  164.         String xml="<batchSendResp><sendResp><sms><phone>137000000</phone><smsID>ff8080813349da9001334f0eed8c5923</smsID></sms></sendResp><sendResp><sms><phone>187000000</phone><smsID>ff8080813349da9001334f0eee045924</smsID></sms></sendResp></batchSendResp>";
  165.         parse(xml);
  166.     }

  167. }

 

 

运行之后的结果会是:

根节点: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

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

相关推荐

DOM4J 读取xml字符串

NULL 博文链接:https://navylee.iteye.com/blog/727103

Dom4j解析字符串xml格式

dom4j是一个Java的XML API,是jdom的升级品,用来读写XML文件的。dom4j是一个十分优秀的JavaXML API,具有性能优异、功能强大和极其易使用的特点,它的性能超过sun公司官方的dom技术,同时它也是一个开放源代码的软件。 Maven在线地址:https://mvnrepository.com/artifact/dom4j/dom4j import java.util...

梦里蓝天 850

java解析xml,dom解析,jsoup解析,完整项目

java解析xml,dom解析,jsoup解析,两种不同方式的解析,完整项目

dom4j解析xml

引入maven坐标 <dependency> <groupId>dom4j</groupId> <artifactId>dom4j</artifactId> <version>1.6.1</version> </dependency> String xml = "<sites&g

Anhk丶 383

【C++】lambda表达式

本篇文章我们要学习的是lambda表达式,它是C++11新增的一种特别方便的语法,相较于之前的函数指针以及仿函数都方便了不少,下面就让我们一起来学习吧。

malloc不出对象的博客 2633

在macOS上使用GitHub的超详细指南

GitHub:免费的远程仓库,可用来托管自己的开源项目。它利用了Git强大的克隆和分支功能,让我们参与别人的开源项目和让别人参与自己的开源项目变得简单高效。

Mars的博客 3392

dom4j 解析xml string 字符串

package dom4j; import java.util.Iterator; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.SAXReader; /** *...

Hi, Sun 245

REALTEK PKE8710ECF开发板入手试玩(一)

REALTEK PKE8710ECF开发板入手试玩

lbqhope的专栏 694

Dom4j解析xml字符串

Dom4j解析xml字符串到List或JSON 通用代码 /** * 选择需要返回的格式: 1、返回 List<Map>\2、返回 Map * @param xml * @return */ @SuppressWarnings("all") public static List<Map<String, Object>> parseXML(String xml) { // 1、 List<Map> List<Map<St

zongwing的博客 3587

维纳(Wiener)复原滤波器的三种推导形式及其在图像处理中的应用

本文深入解析了维纳(Wiener)复原滤波器的三种核心推导形式:卷积形式、矩阵向量形式和频域形式,并重点阐述了其基于线性最小均方误差(LMMSE)估计的核心思想。通过Python实战演示,展示了频域形式如何高效地在图像去模糊与噪声抑制之间取得平衡,是图像复原领域的经典且实用的工具。

net55的博客 580

从 SOAUTH2 到系统用户,SAP AS ABAP 里配置 OAuth 2.0 Client 的完整落地思路

SAP OAuth 2.0客户端配置的核心在于建立系统级信任关系。在AS ABAP中,每个OAuth 2.0客户端必须关联一个System类型的用户账号(通过SU01创建),并建议采用业务语义明确的命名规范(如ZBTP_PO_APPROVAL_APP)。关键配置包括:客户端认证方式(推荐SSL证书而非共享密钥)、Token生命周期(默认3600秒)、Scope访问范围,以及根据应用场景选择Authorization Code或SAML 2.0 Bearer等授权模式。项目实践中应避免混合配置不同授权类型,而

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 989

dom4j解析xml(字符串)

import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.DocumentHelper; import org.dom4j.Element; /** * 解析xml * xmlStr 要解析的xml字符串 * respU...

yapengliu的博客 6697

第3版•系统集成项目管理工程师(中级) │ 第6章 数据工程

🥏第3版•系统集成项目管理工程师(中级) │ 第6章 数据工程

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 1万+

java解析xml字符串 dom4j_java解析xml字符串(用dom4j)

packagecom.smsServer.Dhst;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.DocumentHelper;importo...

weixin_33734087的博客 546

paddlehub无法安装,安装报错【Bug完美解决】

paddlehub无法安装,安装报错【Bug完美解决】 我们正在进行一个基于Python的项目开发,该项目需要集成PaddleHub,以利用其丰富的深度学习模型和工具。PaddleHub提供了一种简便的方式来使用预训练模型,以加速开发过程并提高模型效果。 现在paddlehub安装出现问题了,本文彻底解决paddlehub无法安装的问题。

一键难忘的博客 3391

使用 Simulink 进行电力电子系统的效率优化仿真

电力电子系统(Power Electronics System)是现代电力系统和工业自动化中的关键组成部分,广泛应用于可再生能源发电、电动汽车、不间断电源(UPS)、电机驱动等领域。为了提高系统的整体性能和经济性,必须对电力电子系统的效率进行优化。效率优化的目标是最大化系统的能量转换效率,减少损耗,从而提高系统的可靠性和经济效益。Simulink 提供了一个强大的仿真环境,可以用来设计、分析和验证电力电子系统的效率优化策略。本教程将详细介绍如何使用 Simulink 进行电力电子系统的效率优化仿真。

xiaoheshang_123的博客 356

dom4j解析xml字符串实例

dom4j解析xml字符串实例 DOM4J     与利用DOM、SAX、JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异、功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml。dom4j是一套开源的api。实际项目中,往往选择dom4j来作为解析xml的利器。 先来看看dom4j中对应XML的DOM树建

xuefeimengli2007的专栏 620

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

使用DOM4J解析xml字符串

使用DOM4J解析xml的一种常用的方式,用到了可以过来看看哦。 package com.test; //先加入dom4j.jar包 import java.util.HashMap; import java.util.Iterator; import java.util.Map; import org.dom4j.Document; import org.dom4j.Document

黄爱岗廊坊师范学院信息技术提高班 第七期 2425

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

java 解析xml字符串用dom4j

packagecom.smsServer.Dhst; importjava.util.HashMap; importjava.util.Iterator; importjava.util.Map; importorg.dom4j.Document; importorg.dom4j.DocumentException; importorg.dom4j....

152

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

java dom解析xml字符串_dom4j解析xml字符串实例

java部分DOM4J与利用DOM、SAX、JAXP机制来解析xml相比,DOM4J 表现更优秀,具有性能优异、功能强大和极端易用使用的特点,只要懂得DOM基本概念,就可以通过dom4j的api文档来解析xml。dom4j是一套开源的api。实际项目中,往往选择dom4j来作为解析xml的利器。先来看看dom4j中对应XML的DOM树建立的继承关系针对于XML标准定义,对应于图2-1列出的内容,d...

weixin_34191685的博客 951

Xml字符串dom4j解析

import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.dom4j.Attribute;import org.dom4j.Document;import org.dom4j.DocumentE...

qq_34061132的博客 776

java xml dom4j 解析_java解析xml字符串为实体(dom4j解析)

packagecom.smsServer.Dhst;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Map;importorg.dom4j.Document;importorg.dom4j.DocumentException;importorg.dom4j.DocumentHelper;importo...

weixin_35073484的博客 280
上一篇: java使用jxl工具导入导出excel操作
下一篇: 使用HttpSessionListener监听器 监控当前网站在线人数
gwpJava
博客等级 码龄14年 11粉丝 91原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值