博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dom4j解析XML
阅读量:6321 次
发布时间:2019-06-22

本文共 2972 字,大约阅读时间需要 9 分钟。

 

dom4j解析XML

CreateTime--2018年3月26日15:55:06

Author:Marydon

一、所需jar包

  dom4j-1.6.1.jar

二、导入

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

三、具体操作

1.字符串转document对象

  方式一:

String result = "
Marydon
成功
";// 将字符串转换成document对象Document document = DocumentHelper.parseText(res);

  方式二:

Document document2 = DocumentHelper.createDocument(); // 创建Document document 以xml的格式存放返回参数Element request = document2.addElement("Request"); // 在 document中 新建一个Request节点// 添加userId节点,并设值request.addElement("userId").setText("1");  

  方式三:

StringBuilder sb = new StringBuilder();sb.append("
").append("
").append("1").append(
).append("
");// 将字符串转换成document对象Document document = DocumentHelper.parseText(sb.toString());

 

2.将document对象转换成字符串 

  方式一:完全转换(头部信息+节点信息)

// 将document对象转换成xml格式字符串String str = document.asXML().toString();

  str所代表的是:

Marydon
成功
 

  方式二:只获取节点信息

// 将document对象转换成xml格式字符串String str = document.getRootElement().asXML().toString();

  str所代表的是:

Marydon
成功

3.举例说明

  将其封装成xml格式的数据

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

  第一种方式:操作document对象

// 返回xml格式数据// 方式一// 创建document对象Document document = DocumentHelper.createDocument();// 生成Response节点Element response = document.addElement("Response");// 添加子节点result_flag并将值设为0response.addElement("result_flag").setText("0");response.addElement("error_text").setText("成功");// 生成Result节点Element result = response.addElement("Result");result.addElement("un_value").setText("");// 设置token有效期(当天有效)result.addElement("valid_date").setText("2018-06-04");// 将document对象转换成xml格式字符串String xmlResult = document.asXML().toString();System.out.println(xmlResult);/*
0
成功
2018-06-04
*/

  第二种方式:字符串拼接

// 方式二StringBuilder sb = new StringBuilder();sb.append("
");sb.append("
0
");sb.append("
成功
");sb.append("
");sb.append("
");sb.append("
2018-06-04
");sb.append("
");sb.append("
");// 用于存储返回xml信息xmlResult = sb.toString();Document bodyDoc = null;try { bodyDoc = DocumentHelper.parseText(xmlResult);} catch (DocumentException e) { e.printStackTrace();}xmlResult = bodyDoc.asXML();System.out.println(xmlResult);/*
0
成功
2018-06-04
*/

四、注意事项

  1.以接口的形式进行传输时,"&"是特殊符号,不能直接传,必须转义成"&",否则报错;

  2.将字符串转换成document对象(xml格式)时,上面两种实现方式的区别:

  当所有的值都不为空时,转换结果一样;

  但当返回的标签的值为空字符串""时

  方式一,转换的是正常结果:

  方式二,转换异常,会自动转换成自闭合标签(ethnicity、birth_date、address)

 

 相关推荐:

 

 

转载地址:http://lzvaa.baihongyu.com/

你可能感兴趣的文章
【西交ACM】100 A+B problem
查看>>
分布式系统的面试题14
查看>>
web标准的理解
查看>>
浅谈C中的指针和数组(一)
查看>>
你应该在开始API开发之前知道的事(下)(翻译)
查看>>
反射 -- 业务需求:执行某个类中全部的以test为开头的无参数无返回值的非静态方法。...
查看>>
C#关于值类型和引用类型的备忘
查看>>
JavaScript正则表达式详解
查看>>
用委托在listbox中异步显示信息,解决线程间操作无效,从不是创建控件的线程访问它...
查看>>
activity四种启动模式
查看>>
tomcat运行模式APR安装
查看>>
c# winform编程之多线程ui界面资源修改总结篇
查看>>
angular4 下载文件 Excel zip包
查看>>
性能测试总结(一)---基础理论篇
查看>>
关于z-index介绍
查看>>
初识数据库
查看>>
数学问题的解题方法(模板)
查看>>
Prism.Interactivity 之 PopupWindowAction 用法简记
查看>>
PTA(BasicLevel)-1007素数对猜想
查看>>
【学时总结】◆学时·VIII◆ 树形DP
查看>>