解析xml
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;
import org.dom4j.xpath.DefaultXPath;
<soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope"> <soapenv:Body> <n:X1Response xmlns:n="http://vp.xx.com" xmlns:n0="http://vp.xx.com/xsd"> <n:return> <n0:vPXResult> <n0:taskid>11</n0:taskid> <n0:vPResult> <n0:flag>0</n0:flag> </n0:vPResult> </n0:vPXResult> </n:return> </n:X1Response> </soapenv:Body> </soapenv:Envelope>
解析代码;
/**
* 解析 返回的消息体 //后面修改为通用方法
*
* parseSoapXml:(这里用一句话描述这个方法的作用). <br/>
*
* @author
* @param xmlStr
* @return
* @throws Exception
* @since JDK 1.6
* @Date:2015-4-8下午8:05:31
*/
private boolean parseSoapXml(String xmlStr) throws Exception
{
Map<String, String> map = new HashMap<String, String>();
SAXReader saxReader = new SAXReader();
Document document = DocumentHelper.parseText(xmlStr);
DefaultXPath xpath = new DefaultXPath("//n:return");
xpath.setNamespaceURIs(Collections.singletonMap("n", "http://vp.xx.com"));
List list = xpath.selectNodes(document);
Iterator iterator = list.iterator();
if (iterator.hasNext())
{
Element node = (Element) iterator.next();
List<Element> l = node.elements();
Element flagNode = node.element("vPX1Result").element("vPXResult").element("flag");
if (StringUtils.equals("0", flagNode.getText()))
{
map.put("flag", flagNode.getText());
return true;
}
else
{
return false;
}
// Element portNode = node.element("port");
//map.put("port", portNode.getText());
}
return false;
}