java 解析String类型的xml

网络中有时候我们的参数是以xml类型传递的,有时会把xml拼成一个String字符串。

解析如下:

单一xml文档解析

xml文件

   >

   <IfWarning >IfWarning>

   >zh

 

java 解析

public static boolean strParseXML(String str){
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();   
    DocumentBuilder builder; 
    String ifResult=null;
    String ifWarning=null;
 
     try    {  
       builder  =  factory.newDocumentBuilder();  
       Document doc  =  builder.parse( new  ByteArrayInputStream(str.getBytes()));
       if(doc.getElementsByTagName("IfResult").item(0).getFirstChild()!=null){
      ifResult=doc.getElementsByTagName("IfResult").item(0).getFirstChild().getNodeValue();
        if(ifResult.equals("0")){
        ……

         return true;
        }else{
         if(doc.getElementsByTagName("IfWarning").item(0).getFirstChild()!=null){
          ifWarning=doc.getElementsByTagName("IfWarning").item(0).getFirstChild().getNodeValue();
         }
         if(doc.getElementsByTagName("IfError").item(0).getFirstChild()!=null){
          ifError=doc.getElementsByTagName("IfError").item(0).getFirstChild().getNodeValue();
         }
         }
         
        }
       }
      
    }   catch  (ParserConfigurationException e)   {  
      e.printStackTrace();  
    }   catch  (SAXException e)   {  
      e.printStackTrace();  
    }   catch  (IOException e)   {   
      e.printStackTrace();  
    }
    return false;

  }

 

多重参数解析,以对象形式放到List里

 

 public static List xmlInfoParaseModel(String strInfo){
  List list=new ArrayList();
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  
    DocumentBuilder builder;
    try{
     builder  =  factory.newDocumentBuilder();  
     Document doc  =  builder.parse( new  ByteArrayInputStream(strInfo.getBytes()));
     int nodeLength=doc.getElementsByTagName("message").getLength();//获取所有节点个数
     for(int i=0;i      ExteriorImages images=new ExteriorImages();
      images.setR_code(doc.getElementsByTagName("code").item(i).getFirstChild().getNodeValue());
      images.setBar_state(doc.getElementsByTagName("state").item(i).getFirstChild().getNodeValue());
      images.setApp_user(doc.getElementsByTagName("user").item(i).getFirstChild().getNodeValue());

      list.add(images);
     }
     return list;
    
    }
       catch(ParserConfigurationException e)   {  
       e.printStackTrace();  
     }   catch(SAXException e)   { 
       e.printStackTrace();  
     }   catch(IOException e)   {
             e.printStackTrace();  
     } 
  return null;
 }

你可能感兴趣的:(java)