sfz

利用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>20170428085625</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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值