您的位置:首页 > 编程语言 > Java开发

java 解析String类型的xml

2009-04-13 19:38 381 查看
网络中有时候我们的参数是以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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: