zoukankan      html  css  js  c++  java
  • java解析xml获取对应值

    xml如下
    <?xml version="1.0" encoding="UTF-8"?><ResponseInfo><ResCode>Success</ResCode><ResMessage>Success</ResMessage><ErrorNo>0</ErrorNo><ResultToken>1000_httpd_20161107215454_c37de700_48bd696a</ResultToken><Result pageindex="1"><CardNumber>6214867788922101882</CardNumber><UserName></UserName><ValidDate></ValidDate><BankName>招商银行</BankName><BankId>3080000</BankId><CardName>银联IC金卡</CardName><CardType>借记卡</CardType></Result></ResponseInfo>
    Java解析xml代码如下
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.ParserConfigurationException;
    import org.w3c.dom.Document;
    import org.w3c.dom.Element;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    
    /**
         * 解析xml 银行卡
         * parseXMlToBankCard 
         * @author sunjianbo
         * @time 2016年10月27日下午2:21:42
         * @param protocolXML
         * @param cardType
         * @return
         */
        public  ResultMsg parseXMlToBankCard(String protocolXML,ResultMsg rsm) {   
            
            try {
                DocumentBuilderFactory factory = DocumentBuilderFactory   
                        .newInstance();   
                DocumentBuilder builder = factory.newDocumentBuilder();   
                Document doc;
                doc = builder   
                        .parse(new InputSource(new StringReader(protocolXML)));
                 Element root = doc.getDocumentElement();   
                    NodeList nodes = root.getChildNodes();
                    BankCard bankCard = new BankCard();
                    if (nodes != null) { 
                         //<ResCode>第一个子节点 ,是否是Success
                         Node firstNode = nodes.item(0);
                         String firstNodeValue = firstNode.getFirstChild().getNodeValue();
                         if(null !=firstNodeValue &&  "Success".equals(firstNodeValue)){
                             for(int j = 0; j < nodes.getLength(); j++){
                                  Node node = nodes.item(j);
                                  if(null != node.getNodeName() && "Result".equals(node.getNodeName())){
                                   //解析银行卡
                                    
                                        NodeList nls =  node.getChildNodes();
                                       for(int i= 0; i < nls.getLength(); i++){
                                             Node nl = nls.item(i);
                                             if(nl.getNodeName()!= null && nl.getFirstChild() != null){
                                                    // System.out.println("节点**" + nl.getNodeName() + "	text="  
                                                   //    + nl.getFirstChild().getNodeValue());
                                                     if(nl.getFirstChild().getNodeValue() != null){
                                                         if("BankName".equals(nl.getNodeName()) ){
                                                             bankCard.setBankName(nl.getFirstChild().getNodeValue());
                                                         }
                                                         /*if("BankId".equals(nl.getNodeName()) ){
                                                             bankCard.setCardNo(nl.getFirstChild().getNodeValue());
                                                         }*/
                                                         if("CardName".equals(nl.getNodeName()) ){
                                                             bankCard.setCardName(nl.getFirstChild().getNodeValue());
                                                         }
                                                         if("CardType".equals(nl.getNodeName()) ){
                                                             bankCard.setCardType(nl.getFirstChild().getNodeValue());
                                                         }
                                                         if("CardNumber".equals(nl.getNodeName()) ){
                                                             bankCard.setCardNo(nl.getFirstChild().getNodeValue());
                                                         }
                                                         rsm.setRtncode(0);
                                                         rsm.setRtninfo(bankCard);
                                                     }
                                             }
                                        }
                                 }
                             }
                          }else{
                              Node secendtNode = nodes.item(1);
                                 String secendtNodeValue = secendtNode.getFirstChild().getNodeValue();
                              rsm.setErrmsg(secendtNodeValue);
                          }
                         
                    }else{
                        rsm.setErrmsg("Test failed, did not get test results, please test again");
                    }
                    
            } catch (SAXException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ParserConfigurationException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }   
           
            return rsm;
        }
  • 相关阅读:
    我国大部分地区今晚将上演红色月全食美景[2007828]
    n阶汉诺塔问题(Hanoi)
    NBear中使用WhereClip表示in查询的问题
    web性能测试分析理论篇
    Net类库一览 转
    使用ASP.Net Forms模式实现WebService身份验证
    2005数据源的相关数据绑定
    单位分级,涵闸和人员绑定到树
    ajax,js文件中中文显示成乱码的问题
    WinFom应用程序数据操作技巧
  • 原文地址:https://www.cnblogs.com/nmdzwps/p/6719765.html
Copyright © 2011-2022 走看看