网络中有时候我们的参数是以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;
}