java 解析String类型的xml

来源:互联网 发布:python 模块大全 编辑:程序博客网 时间:2024/04/30 13:15

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

解析如下:

单一xml文档解析

xml文件

<?xml version="1.0" encoding="gb2312"?>

<IfResponse>

   <IfResult ></IfResult>

   <IfWarning ></IfWarning>

   <IfError >zh</IfError>

</IfResponse>

 

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<ExteriorImages> xmlInfoParaseModel(String strInfo){
  List<ExteriorImages> list=new ArrayList<ExteriorImages>();
  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<nodeLength;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;
 }