sfz
2017-06-09 12:43
106 查看
利用dom4j 处理调用webService接口返回的xml数据
由于xml文件中存在不需要(<ROW index="2">...</ROW>)的数据,本文通过删除节点方式屏蔽
package test1.test1;
import java.io.File;
import java.util.List;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.junit.Test;
public class Test1 {
@Test @SuppressWarnings(value="unchecked") public void xmlConvertString() throws Exception { // dom4j将 xml文件转xml字符串 Document document = new SAXReader().read(new File( "D://workspace//test1//src//test//java//XZHZ.xml")); String text = document.asXML();
// System.out.println(text);
// dom4j 将xml字符串解析 Document doc = DocumentHelper.parseText(text); Element element = doc.getRootElement(); String num = element.element("RECORD").element("RESULT") .attributeValue("num"); int val = Integer.parseInt(num); if (val > 1) { Element child = element.element("RECORD").element("RESULT"); // 取得RESULT下所有节点 List<Element> sonList = child.elements(); for (Element e : sonList) { if (e.elementTextTrim("DQHJZT").equals("已处理")) { e.element("DQHJZT").getParent().detach(); } } } getNodes(element.element("RECORD").element("RESULT"));//测试结果显示“已处理”节点被删掉 } /* * 递归 获取所有节点 * @param Element node */ @SuppressWarnings("unchecked") public static void getNodes(Element node){ //System.out.println("---开始新节点---"); //当前节点名称、内容、属性 System.out.println("当前节点名称:"+node.getName()); System.out.println("当前节点内容:"+node.getTextTrim()); //当前节点所有属性 List<Attribute> attList = node.attributes(); for(Attribute attr : attList){//遍历当前节点所有属性 System.out.println("属性名:"+attr.getName() +"属性值:"+attr.getValue()); } //递归遍历当前节点下的所有子节点 List<Element> sonList = node.elements();//所有一级子节点的list //遍历所有一级子节点 for(Element e : sonList){ getNodes(e); } }
}
xml
<DATA code="10" msg="接口调用成功"> <RECORD> <condition sid="V_SFZ_SLXX" no="1"> <GMSFHM>3622021991********</GMSFHM> </condition> <RESULT num="2"> <ROW index="1"> <ID>5d53d57b9ba44eda268518cc3e8424e</ID> <SLH>44030443120117042890001</SLH> <RID>362202199108****000021168294</RID> <GMSFHM>3622021991********</GMSFHM> <CSRQ>19910824</CSRQ><XM>熊**</XM> <XB>1</XB><XBMC>男</XBMC><MZ>01</MZ><MZMC>汉族</MZMC> <ZZ>广东省*******</ZZ> <ZPLSH>QT007786604</ZPLSH><SSXQ>440304</SSXQ> <SSXQMC>广东省*****</SSXQMC><PCS>440***540000</PCS> <PCSMC>**派出所</PCSMC><JCW>440***003008</JCW> <JCWMC>**社区工作站</JCWMC><XZJD>440304003</XZJD> <XZJDMC>**街道办</XZJDMC><ZZLX>1</ZZLX> <ZZLXMC>普通证件</ZZLXMC><LZFS>10</LZFS> <LZFSMC>受理机关领取</LZFSMC><SLYY>23</SLYY> <SLYYMC>姓名变更换领</SLYYMC> <SQRGMSFHM>3622021991********</SQRGMSFHM> <SQRXM>熊**</SQRXM> <SQRLXDH>1881901****</SQRLXDH> <CJSJ>20170428085 ba5b 625</CJSJ> <CJDW>440304999991</CJDW> <CJDWMC>**户政中心</CJDWMC> <CJR>057034</CJR><CJRXM>01号申领机</CJRXM> <QFSJ>20170428184055</QFSJ><QFR>440301******19802X</QFR> <QFDW>440304000000</QFDW><QFDWMC>**市公安局**分局</QFDWMC> <QFRQ>20170428</QFRQ><QFJG>**市公安局**分局</QFJG> <YXQQ>20170428</YXQQ><YXQZ>20270428</YXQZ><ZWCJJG>1</ZWCJJG> <ZWCJJGMC>两枚指纹信息注册成功</ZWCJJGMC><ZWY_ZCJG>1</ZWY_ZCJG> <ZWY_ZCJGMC>注册成功</ZWY_ZCJGMC><ZWY_ZW>12</ZWY_ZW> <ZWY_ZWMC>右手食指</ZWY_ZWMC><ZWY_TXZLZ>69</ZWY_TXZLZ><ZWE_ZCJG>1</ZWE_ZCJG> <ZWE_ZCJGMC>注册成功</ZWE_ZCJGMC><ZWE_ZW>18</ZWE_ZW><ZWE_ZWMC>左手中指</ZWE_ZWMC> <ZWE_TXZLZ>75</ZWE_TXZLZ><ZWHYJG></ZWHYJG><ZWHYJGMC></ZWHYJGMC> <DQYWHJ>领取发放</DQYWHJ><DQHJZT>待处理</DQHJZT></ROW> <ROW index="2"> <ID>be1915a3df7948debec90663291e3191</ID> <SLH>4403044312017042690005</SLH> <RID>3622021991*****000021168294</RID> <GMSFHM>36220219910*****</GMSFHM> <CSRQ>19910824</CSRQ><XM>熊晓号</XM> <XB>1</XB><XBMC>男</XBMC><MZ>01</MZ><MZMC>汉族</MZMC> <ZZ>广东省******</ZZ> <ZPLSH>QT007786604</ZPLSH><SSXQ>440304</SSXQ> <SSXQMC>广东省*****</SSXQMC><PCS>440304540000</PCS> <PCSMC>**派出所</PCSMC><JCW>440304003008</JCW> <JCWMC>**社区工作站</JCWMC><XZJD>440304003</XZJD> <XZJDMC>**街道办</XZJDMC><ZZLX>1</ZZLX> <ZZLXMC>普通证件</ZZLXMC><LZFS>10</LZFS> <LZFSMC>受理机关领取</LZFSMC><SLYY>11</SLYY> <SLYYMC>证件丢失补领</SLYYMC> <SQRGMSFHM>3622021991*****</SQRGMSFHM> <SQRXM>熊晓豪</SQRXM> <SQRLXDH>188190*****</SQRLXDH> <CJSJ>20170426171105</CJSJ> <CJDW>440304999991</CJDW> <CJDWMC>**户政中心</CJDWMC> <CJR>057034</CJR><CJRXM>01号申领机</CJRXM> <QFSJ></QFSJ><QFR></QFR> <QFDW></QFDW><QFDWMC></QFDWMC> <QFRQ>20170426</QFRQ><QFJG>**市公安局**分局</QFJG> <YXQQ>20170426</YXQQ><YXQZ>20270426</YXQZ><ZWCJJG>1</ZWCJJG> <ZWCJJGMC>两枚指纹信息注册成功</ZWCJJGMC><ZWY_ZCJG>1</ZWY_ZCJG> <ZWY_ZCJGMC>注册成功</ZWY_ZCJGMC><ZWY_ZW>11</ZWY_ZW> <ZWY_ZWMC>右手拇指</ZWY_ZWMC><ZWY_TXZLZ>71</ZWY_TXZLZ><ZWE_ZCJG>1</ZWE_ZCJG> <ZWE-ZCJGMC>注册成功</ZWE-ZCJGMC><ZWE_ZW>16</ZWE_ZW><ZWE_ZWMC>左手拇指</ZWE_ZWMC> <ZWE_TXZLZ>60</ZWE_TXZLZ><ZWHYJG></ZWHYJG><ZWHYJGMC></ZWHYJGMC> <DQYWHJ>审核</DQYWHJ><DQHJZT>已处理</DQHJZT> </ROW> </RESULT> </RECORD> </DATA>
相关文章推荐
- 在dom4j中使用XPath的简单实例
- jQuery DOM删除节点操作指南
- jQuery删除节点用法示例(remove方法)
- jQuery的DOM操作之删除节点示例
- Android 创建与解析XML(五)――详解Dom4j方式
- java使用dom4j操作xml示例代码
- java基于dom4j包实现对XML解析的方法
- dom4j操作xml的demo(分享)
- 深入dom4j使用selectSingleNode方法报错分析
- dom4j从jar包中读取xml文件的方法
- java dom4j解析xml用到的几个方法
- java使用xpath和dom4j解析xml
- 在java中使用dom4j解析xml(示例代码)
- Dom4j的使用(全而好的文章)
- Java dom4j saxReader解析xml
- dom4j读写xml文件
- 解决dom4j解析xml文件时访问DTD文件问题
- 学习:Dom4j
- dom4j的快速入门——冰云编写
- dom4j 中文api