获取xml中的 (一部分报文节点)循环组的文本内容

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011301815/article/details/53165241
package test;


import java.io.StringReader;
import java.util.List;


import org.jdom.input.SAXBuilder;


public class SAXBuilder_XmlNode {


/**
* @param yuanshishi
* 2016-11-14 21:30
* 获取xml
* 将xml中的某个(一部分报文节点)循环组进行循环取值

*/
public static void main(String[] args) {
String strNode="<?xml version='1.0' encoding='UTF-8'?><Service>"+
"<Service_Header>" +
"<service_sn>1610137000009072980</service_sn>" +
"<service_id>00060000000000</service_id>" +
   "<requester_id>0137</requester_id>" +
   "<branch_id>810102051</branch_id>" +
   "<channel_id>30</channel_id>" +
   "<service_time>20161114184635</service_time>" +
   "<version_id>01</version_id>" +
   "<need_request>true</need_request>" +
   "<pub_target_id>61</pub_target_id>" +
   "<service_response>" +
     "<status>COMPLETE</status>" +
    " <code>S000A000</code>" +
     "<desc>交易处理成功</desc>" +
     "<requester_code>S000A000</requester_code>" +
     "<requester_desc>交易处理成功</requester_desc>" +
   "</service_response>" +
   "<start_timestamp>2016-11-14 18:46:58.133</start_timestamp>" +
   "<trace_msg>IBM.SERVICE.RES.OUTPUT-return reponse to requester</trace_msg>" +
   "<end_timestamp>2016-11-14 18:46:58.449</end_timestamp>" +
 "</Service_Header>" +
 "<Service_Body>" +
   "<ext_attributes>" +
     "<INM-TELLER-ID>81080002    </INM-TELLER-ID>" +
     "<INM-BRANCH-ID>810102051</INM-BRANCH-ID>" +
     "<INM-TERM-SRL>001</INM-TERM-SRL>" +
     "<INM-IC-F55-FIELD loop_num='1' p_type='G'>" +
      " <INM-F55-LENGTH>8A</INM-F55-LENGTH>" +
      " <INM-F55-DATA></INM-F55-DATA>" +
     "</INM-IC-F55-FIELD>" +
     "<INM-IC-A-INFO loop_num='1' p_type='G'>" +
       "<INM-CRD-NO>6230**1080002155***</INM-CRD-NO>" +
       "<INM-CRD-SEQ-NO>001</INM-CRD-SEQ-NO>" +
       "<INM-CRD-EC-BAL>000000000000</INM-CRD-EC-BAL>" +
     "</INM-IC-A-INFO>" +
     "<IS_PROXY>2</IS_PROXY>" +
     "<MAC_KEY_LABLE>C8100</MAC_KEY_LABLE>" +
     "<PRO_GLB_APPS_SYS_ID>0000006</PRO_GLB_APPS_SYS_ID>" +
     "<PRO_SUB_APPS_SYS_ID>0000</PRO_SUB_APPS_SYS_ID>" +
     "<INNER_DataProcPara>0,1,0</INNER_DataProcPara>" +
     "<REQ_GLB_APPS_SYS_ID>8100137</REQ_GLB_APPS_SYS_ID>" +
     "<REQ_SUB_APPS_SYS_ID>0000</REQ_SUB_APPS_SYS_ID>" +
     "<T_KEY_LABEL>X0CS0137</T_KEY_LABEL>" +
   "</ext_attributes>" +
   "<request>" +
    "<EBUS_CHANNEL>MB</EBUS_CHANNEL>" +
     "<EBUS_TRANS_ID>IM00020013</EBUS_TRANS_ID>" +
     "<EBUS_BANKID>810</EBUS_BANKID>" +
     "<EBUS_CIP_NAMECN>XXXXX</EBUS_CIP_NAMECN>" +
     "<EBUS_CERT_TYPE>A</EBUS_CERT_TYPE>" +
     "<EBUS_CERT_NO>XXXXXXXXXX</EBUS_CERT_NO>" +
     "<EBUS_AIF_ACCNO>XXXXXXXXXXXXXXX</EBUS_AIF_ACCNO>" +
     "<EBUS_CUST_NO>100002193671</EBUS_CUST_NO>" +
     "<EBUS_EBANK_STATE>0</EBUS_EBANK_STATE>" +
     "<EBUS_MBANK_STATE>0</EBUS_MBANK_STATE>" +
     "<EBUS_CIP_HOSTNO>810100123544678     </EBUS_CIP_HOSTNO>" +
   "</request>" +
   "<MAC_VALUE/>" +
   "<MAC/>" +
   "<response>" +
     "<EBUS_CHANNEL>MB</EBUS_CHANNEL>" +
     "<EBUS_CERT_TYPE>A</EBUS_CERT_TYPE>" +
     "<EBUS_CERT_NO>430902199306115015</EBUS_CERT_NO>" +
     "<EBUS_CIP_HOSTNO>810100123544678</EBUS_CIP_HOSTNO>" +
     "<EBUS_CIP_NAMECN>陈龙</EBUS_CIP_NAMECN>" +
     "<EBUS_CUST_SEX>1</EBUS_CUST_SEX>" +
     "<EBUS_CUST_NO>100002193671</EBUS_CUST_NO>" +
     "<EBUS_EBANK_CUSTTYPE>01</EBUS_EBANK_CUSTTYPE>" +
     "<EBUS_MBANK_CUSTTYPE>01</EBUS_MBANK_CUSTTYPE>" +
     "<EBUS_ADRESS>#######################</EBUS_ADRESS>" +
     "<EBUS_USER_MOBILE>##############</EBUS_USER_MOBILE>" +
     "<EBUS_MBANK_MOBILE>##########</EBUS_MBANK_MOBILE>" +
     "<EBUS_EBANK_STATE>0</EBUS_EBANK_STATE>" +
     "<EBUS_MBANK_STATE>0</EBUS_MBANK_STATE>" +
     "<EBUS_EBANK_SAFESTYLE>0100000000</EBUS_EBANK_SAFESTYLE>" +
     "<EBUS_MBANK_SAFESTYLE>0100000000</EBUS_MBANK_SAFESTYLE>" +
     "<EBUS_EBANK_OPENFLAG>1</EBUS_EBANK_OPENFLAG>" +
     "<EBUS_MBANK_OPENFLAG>1</EBUS_MBANK_OPENFLAG>" +
     "<ResultSet>" +
       "<MB_LIMITS id='1'>" +
         "<EBUS_ALM_BSNTYPE>01</EBUS_ALM_BSNTYPE>" +
         "<EBUS_ALM_SINGLEMAX>10000</EBUS_ALM_SINGLEMAX>" +
         "<EBUS_ALM_DAYMAX>1000</EBUS_ALM_DAYMAX>" +
         "<EBUS_ALM_SCOPE>0</EBUS_ALM_SCOPE>" +
       "</MB_LIMITS>" +
       "<MB_LIMITS id='2'>" +
         "<EBUS_ALM_BSNTYPE>02</EBUS_ALM_BSNTYPE>" +
        " <EBUS_ALM_SINGLEMAX>9999999</EBUS_ALM_SINGLEMAX>" +
         "<EBUS_ALM_DAYMAX>9999999</EBUS_ALM_DAYMAX>" +
         "<EBUS_ALM_SCOPE>0</EBUS_ALM_SCOPE>" +
       "</MB_LIMITS>" +
       "<MB_LIMITS id='3'>" +
         "<EBUS_ALM_BSNTYPE>03</EBUS_ALM_BSNTYPE>" +
        " <EBUS_ALM_SINGLEMAX>10000</EBUS_ALM_SINGLEMAX>" +
        " <EBUS_ALM_DAYMAX>50000</EBUS_ALM_DAYMAX>" +
        " <EBUS_ALM_SCOPE>0</EBUS_ALM_SCOPE>" +
       "</MB_LIMITS>" +
     "</ResultSet>" +
     "<ResultSet>" +
       "<SECURITY_LIST>" +
         "<EBUS_SECURITY_TYPE>03</EBUS_SECURITY_TYPE>" +
        " <EBUS_SECURITY_LEVEL>8</EBUS_SECURITY_LEVEL>" +
         "<EBUS_SECURITY_NAME>1421</EBUS_SECURITY_NAME>" +
         "<EBUS_SECURITY_NO>8104200000071</EBUS_SECURITY_NO>" +
       "</SECURITY_LIST>" +
     "</ResultSet>" +
     "<EBUS_PB_LIMITS>" +
       "<PB_LIMITS id='1'>" +
         "<EBUS_ALM_BSNTYPE>01</EBUS_ALM_BSNTYPE>" +
         "<EBUS_PCS_SAFETYPE>01</EBUS_PCS_SAFETYPE>" +
         "<EBUS_ALM_DAYMAX>5000000</EBUS_ALM_DAYMAX>" +
       "</PB_LIMITS>" +
       "<PB_LIMITS id='2'>" +
         "<EBUS_ALM_BSNTYPE>01</EBUS_ALM_BSNTYPE>" +
         "<EBUS_PCS_SAFETYPE>02</EBUS_PCS_SAFETYPE>" +
        " <EBUS_ALM_DAYMAX>50000</EBUS_ALM_DAYMAX>" +
      " </PB_LIMITS>" +
       "<PB_LIMITS id='3'>" +
        " <EBUS_ALM_BSNTYPE>01</EBUS_ALM_BSNTYPE>" +
        " <EBUS_PCS_SAFETYPE>03</EBUS_PCS_SAFETYPE>" +
       "  <EBUS_ALM_DAYMAX>3000000</EBUS_ALM_DAYMAX>" +
       "</PB_LIMITS>" +
       "<PB_LIMITS id='4'>" +
        " <EBUS_ALM_BSNTYPE>02</EBUS_ALM_BSNTYPE>" +
         "<EBUS_PCS_SAFETYPE>01</EBUS_PCS_SAFETYPE>" +
         "<EBUS_ALM_DAYMAX>5000</EBUS_ALM_DAYMAX>" +
       "</PB_LIMITS>" +
       "<PB_LIMITS id='5'>" +
         "<EBUS_ALM_BSNTYPE>02</EBUS_ALM_BSNTYPE>" +
         "<EBUS_PCS_SAFETYPE>02</EBUS_PCS_SAFETYPE>" +
        " <EBUS_ALM_DAYMAX>5000</EBUS_ALM_DAYMAX>" +
       "</PB_LIMITS>" +
       "<PB_LIMITS id='6'>" +
         "<EBUS_ALM_BSNTYPE>02</EBUS_ALM_BSNTYPE>" +
         "<EBUS_PCS_SAFETYPE>03</EBUS_PCS_SAFETYPE>" +
        " <EBUS_ALM_DAYMAX>5000</EBUS_ALM_DAYMAX>" +
       "</PB_LIMITS>" +
     "</EBUS_PB_LIMITS>" +
  " </response>" +
 "</Service_Body>" +
"</Service>";

    if(strNode.indexOf("<EBUS_PB_LIMITS>")!=-1){
System.out.println("===完整的xml报文=== new String(realrecv)==============="+ strNode);
strNode = strNode.substring(strNode.indexOf("<EBUS_PB_LIMITS>"), strNode.indexOf("</EBUS_PB_LIMITS>")+17);
System.out.println("===截取之后的部分循环节点=== strNode==============="+ strNode);
getXmlNode(strNode);
}else{
System.out.println("**********************");
}
    }


public static String getXmlNode(String strNode){
String result="";
/* strNode ="<EBUS_PB_LIMITS>" +
"<PB_LIMITS id='1'>" +
         "<EBUS_ALM_BSNTYPE>01</EBUS_ALM_BSNTYPE>" +
         "<EBUS_PCS_SAFETYPE>01</EBUS_PCS_SAFETYPE>" +
         "<EBUS_ALM_DAYMAX>5000000</EBUS_ALM_DAYMAX>" +
      " </PB_LIMITS>" +
       "<PB_LIMITS id='2'>" +
         "<EBUS_ALM_BSNTYPE>01</EBUS_ALM_BSNTYPE>" +
        " <EBUS_PCS_SAFETYPE>02</EBUS_PCS_SAFETYPE>" +
        " <EBUS_ALM_DAYMAX>50000</EBUS_ALM_DAYMAX>" +
      " </PB_LIMITS>" +
       "<PB_LIMITS id='3'>" +
        " <EBUS_ALM_BSNTYPE>01</EBUS_ALM_BSNTYPE>" +
        " <EBUS_PCS_SAFETYPE>03</EBUS_PCS_SAFETYPE>" +
         "<EBUS_ALM_DAYMAX>3000000</EBUS_ALM_DAYMAX>" +
       "</PB_LIMITS>" +
       "<PB_LIMITS id='4'>" +
         "<EBUS_ALM_BSNTYPE>02</EBUS_ALM_BSNTYPE>" +
        " <EBUS_PCS_SAFETYPE>01</EBUS_PCS_SAFETYPE>" +
         "<EBUS_ALM_DAYMAX>5000</EBUS_ALM_DAYMAX>" +
       "</PB_LIMITS>" +
       "<PB_LIMITS id='5'>" +
        " <EBUS_ALM_BSNTYPE>02</EBUS_ALM_BSNTYPE>" +
         "<EBUS_PCS_SAFETYPE>02</EBUS_PCS_SAFETYPE>" +
         "<EBUS_ALM_DAYMAX>5000</EBUS_ALM_DAYMAX>" +
       "</PB_LIMITS>" +
       "<PB_LIMITS id='6'>" +
         "<EBUS_ALM_BSNTYPE>02</EBUS_ALM_BSNTYPE>" +
        " <EBUS_PCS_SAFETYPE>03</EBUS_PCS_SAFETYPE>" +
        " <EBUS_ALM_DAYMAX>5000</EBUS_ALM_DAYMAX>" +
       "</PB_LIMITS></EBUS_PB_LIMITS>";*/

try{
/* <PB_LIMITS id='4'>
             <EBUS_ALM_BSNTYPE>02</EBUS_ALM_BSNTYPE>
           <EBUS_PCS_SAFETYPE>01</EBUS_PCS_SAFETYPE>
           <EBUS_ALM_DAYMAX>5000</EBUS_ALM_DAYMAX>

        </PB_LIMITS>

*/


String Ukey_transferLimit="";//uKEY的转账限额
String Ukey_PayLimit="";//uKEY的支付限额

String lp_transferLimit="";//令牌的转账限额
String lp_PayLimit="";//令牌的支付限额

String EBUS_ALM_BSNTYPE_i="";//限额类型
String EBUS_PCS_SAFETYPE_i="";//客户安全认证方式 (01:USBKEY;02:短信;03:token; 05:大众版)
String EBUS_ALM_DAYMAX_i="";//日累计限额

   org.jdom.Document doc = new SAXBuilder().build(new StringReader(strNode));
   List listLIMITS = doc.getRootElement().getChildren("PB_LIMITS");
   
   for(int i=0;i<listLIMITS.size();i++){
String id_i = ((org.jdom.Element)listLIMITS.get(i)).getAttributeValue("id");
EBUS_ALM_BSNTYPE_i = ((org.jdom.Element)listLIMITS.get(i)).getChildText("EBUS_ALM_BSNTYPE");
EBUS_PCS_SAFETYPE_i = ((org.jdom.Element)listLIMITS.get(i)).getChildText("EBUS_PCS_SAFETYPE");
EBUS_ALM_DAYMAX_i = ((org.jdom.Element)listLIMITS.get(i)).getChildText("EBUS_ALM_DAYMAX");
//System.out.println(id_i + " " + EBUS_ALM_BSNTYPE_i +"   "+EBUS_ALM_DAYMAX_i +"  =="+EBUS_PCS_SAFETYPE_i);

if("01".equals(EBUS_ALM_BSNTYPE_i)&&"01".equals(EBUS_PCS_SAFETYPE_i)){
//uKEY的转账限额
System.out.println("uKEY的转账限额 Ukey_transferLimit=== "+EBUS_ALM_DAYMAX_i);
}else if("01".equals(EBUS_ALM_BSNTYPE_i)&&"03".equals(EBUS_PCS_SAFETYPE_i)){
//令牌的转账限额
System.out.println("令牌的转账限额 lp_transferLimit=== "+EBUS_ALM_DAYMAX_i);
}else if("02".equals(EBUS_ALM_BSNTYPE_i)&&"01".equals(EBUS_PCS_SAFETYPE_i)){
//uKEY的支付限额
System.out.println("uKEY的支付限额  Ukey_PayLimit=== "+EBUS_ALM_DAYMAX_i);
}else if("02".equals(EBUS_ALM_BSNTYPE_i)&&"03".equals(EBUS_PCS_SAFETYPE_i)){
//令牌的支付限额
System.out.println("令牌的支付限额  lp_PayLimit=== "+EBUS_ALM_DAYMAX_i);
}
}
   
result="success";
   
}catch(Exception e){
e.printStackTrace();
}
return result;
}

}




猜你喜欢

转载自blog.csdn.net/u011301815/article/details/53165241