package com.framework.webservice;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;
public class XmlUtil {
public static String xmlString2MapObject(String strXML){
StringBuilder sb = new StringBuilder();
try {
Document doc = DocumentHelper.parseText(strXML);
Element rootElt = doc.getRootElement();
List<Element> liste2 = rootElt.elements();
for(int i=0 ;i<liste2.size();i++){
sb.append(getSubEle(liste2.get(i)));
}
} catch (DocumentException e) {
e.printStackTrace();
}
return sb.toString();
}
/**
* 看看还有更深层节点不 */
public static boolean isHasSubEle(Element e){
return !e.isTextOnly();
}
/**
* 节点遍历
* @param e
*/
public static String getSubEle(Element e){
StringBuilder sb = new StringBuilder();
boolean sub = isHasSubEle(e);
if(sub){
List<Element> subs = e.elements();
for(int j=0 ;j<subs.size();j++){
sb.append(getSubEle(subs.get(j)));
}
}else {
sb.append(e.getText());
//System.out.println("key="+e.getName()+" value="+e.getText());
}
return sb.toString();
}
public static void main(String[] args) {
String xmlString = "<env:Envelope xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:env=\"http://schemas.xmlsoap.org/soap/envelope/\">"
+"<env:Body>"
+"<n1:AllContract1Response env:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" xmlns:n1=\"urn:ActionWebService\">"
+"<return xsi:type=\"xsd:string\">"
+"[{\"contract_sale\":{\"price\":500.0,\"total\":17000.0,\"good_name\":\"\u8d2b\u7164\uff08\u8d2b\u7626\u7164\uff09\",\"contract_sale_no\":\"ZB20100003\",\"good_type\":\"\u672b\u7164\"}},{\"contract_sale\":{\"price\":230.0,\"total\":200000.0,\"good_name\":\"3#\u65e0\u70df\u7164\",\"contract_sale_no\":\"YQGL2013010\",\"good_type\":\"\u7164\u6ce5\"}}]</return>"
+"</n1:AllContract1Response>"
+"</env:Body>"
+"</env:Envelope>";
String str = xmlString2MapObject(xmlString);
System.out.println(str);
}
}
//**********************************************************************
import
org.jdom.Document;
import
org.jdom.Element;
import
org.jdom.JDOMException;
import
org.jdom.input.SAXBuilder;
import
org.xml.sax.InputSource;
public
List xmlElements(String xmlDoc) {
//创建一个新的字符串
StringReader read =
new
StringReader(xmlDoc);
//创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
InputSource source =
new
InputSource(read);
//创建一个新的SAXBuilder
SAXBuilder sb =
new
SAXBuilder();
try
{
//通过输入源构造一个Document
Document doc = sb.build(source);
//取的根元素
Element root = doc.getRootElement();
System.out.println(root.getName());
//输出根元素的名称(测试)
System.out.println(root.getChildText(
"number"
));
}
catch
(JDOMException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
catch
(IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
return
null
;
}