日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

java解析xml字符串为实体(dom4j解析)

發布時間:2023/12/13 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 java解析xml字符串为实体(dom4j解析) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

packagecom.smsServer.Dhst;

importjava.util.HashMap;
importjava.util.Iterator;
importjava.util.Map;

importorg.dom4j.Document;
importorg.dom4j.DocumentException;
importorg.dom4j.DocumentHelper;
importorg.dom4j.Element;

importcom.common.object.SmsSendResponseObject;

/**
* @description 解析xml字符串
*/
publicclassTest{

publicvoidreadStringXml(Stringxml){
Documentdoc=null;
try{

// 讀取并解析XML文檔

// SAXReader就是一個管道,用一個流的方式,把xml文件讀出來

// SAXReader reader = new SAXReader(); //User.hbm.xml表示你要解析的xml文檔

// Document document = reader.read(new File("User.hbm.xml"));

// 下面的是通過解析xml字符串的

doc=DocumentHelper.parseText(xml);// 將字符串轉為XML

ElementrootElt=doc.getRootElement();// 獲取根節點

System.out.println("根節點:"+rootElt.getName());// 拿到根節點的名稱

Iteratoriter=rootElt.elementIterator("head");// 獲取根節點下的子節點head

// 遍歷head節點

while(iter.hasNext()){

ElementrecordEle=(Element)iter.next();
Stringtitle=recordEle.elementTextTrim("title");// 拿到head節點下的子節點title值

System.out.println("title:"+title);

Iteratoriters=recordEle.elementIterator("script");// 獲取子節點head下的子節點script

// 遍歷Header節點下的Response節點

while(iters.hasNext()){

ElementitemEle=(Element)iters.next();

Stringusername=itemEle.elementTextTrim("username");// 拿到head下的子節點script下的字節點username的值

Stringpassword=itemEle.elementTextTrim("password");

System.out.println("username:"+username);
System.out.println("password:"+password);
}
}
Iteratoriterss=rootElt.elementIterator("body");///獲取根節點下的子節點body

// 遍歷body節點

while(iterss.hasNext()){

ElementrecordEless=(Element)iterss.next();
Stringresult=recordEless.elementTextTrim("result");// 拿到body節點下的子節點result值

System.out.println("result:"+result);

IteratoritersElIterator=recordEless.elementIterator("form");// 獲取子節點body下的子節點form

// 遍歷Header節點下的Response節點

while(itersElIterator.hasNext()){

ElementitemEle=(Element)itersElIterator.next();

Stringbanlce=itemEle.elementTextTrim("banlce");// 拿到body下的子節點form下的字節點banlce的值

StringsubID=itemEle.elementTextTrim("subID");

System.out.println("banlce:"+banlce);
System.out.println("subID:"+subID);
}
}
}catch(DocumentException e){
e.printStackTrace();

}catch(Exceptione){
e.printStackTrace();

}
}

/**
* @description 將xml字符串轉換成map
* @param xml
* @return Map
*/
publicstaticMapreadStringXmlOut(Stringxml){
Mapmap=newHashMap();
Documentdoc=null;
try{
doc=DocumentHelper.parseText(xml);// 將字符串轉為XML

ElementrootElt=doc.getRootElement();// 獲取根節點

System.out.println("根節點:"+rootElt.getName());// 拿到根節點的名稱

Iteratoriter=rootElt.elementIterator("head");// 獲取根節點下的子節點head

// 遍歷head節點

while(iter.hasNext()){

ElementrecordEle=(Element)iter.next();
Stringtitle=recordEle.elementTextTrim("title");// 拿到head節點下的子節點title值

System.out.println("title:"+title);
map.put("title",title);

Iteratoriters=recordEle.elementIterator("script");// 獲取子節點head下的子節點script

// 遍歷Header節點下的Response節點

while(iters.hasNext()){

ElementitemEle=(Element)iters.next();

Stringusername=itemEle.elementTextTrim("username");// 拿到head下的子節點script下的字節點username的值

Stringpassword=itemEle.elementTextTrim("password");

System.out.println("username:"+username);
System.out.println("password:"+password);
map.put("username",username);
map.put("password",password);

}
}

Iteratoriterss=rootElt.elementIterator("body");///獲取根節點下的子節點body

// 遍歷body節點

while(iterss.hasNext()){
ElementrecordEless=(Element)iterss.next();
Stringresult=recordEless.elementTextTrim("result");// 拿到body節點下的子節點result值

System.out.println("result:"+result);

IteratoritersElIterator=recordEless.elementIterator("form");// 獲取子節點body下的子節點form

// 遍歷Header節點下的Response節點

while(itersElIterator.hasNext()){

ElementitemEle=(Element)itersElIterator.next();

Stringbanlce=itemEle.elementTextTrim("banlce");// 拿到body下的子節點form下的字節點banlce的值

StringsubID=itemEle.elementTextTrim("subID");

System.out.println("banlce:"+banlce);
System.out.println("subID:"+subID);
map.put("result",result);
map.put("banlce",banlce);
map.put("subID",subID);
}
}
}catch(DocumentException e){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
returnmap;
}
publicstaticvoidparse(Stringxml)
{
Documentdoc=null;
try{
doc=DocumentHelper.parseText(xml);// 將字符串轉為XML

ElementrootElt=doc.getRootElement();// 獲取根節點smsReport

Iteratoriters=rootElt.elementIterator("sendResp");// 獲取根節點下的子節點sms

while(iters.hasNext()){
ElementrecordEle1=(Element)iters.next();
Iteratoriter=recordEle1.elementIterator("sms");
inti=0;
// 遍歷sms節點

while(iter.hasNext()){
ElementrecordEle=(Element)iter.next();
SmsSendResponseObject r=newSmsSendResponseObject();
Stringphone=recordEle.elementTextTrim("phone");// 拿到sms節點下的子節點stat值

StringsmsID=recordEle.elementTextTrim("smsID");// 拿到sms節點下的子節點stat值

System.out.println(phone+"==="+smsID);
}
}
}catch(DocumentException e){
e.printStackTrace();
}catch(Exceptione){
e.printStackTrace();
}
}
publicstaticvoidmain(String[]args){

// 下面是需要解析的xml字符串例子

StringxmlString=""+""+""
+""+""
+""+"0"+""
+"1000"+"36242519880716"
+""+""+"";

/*
* Test2 test = new Test2(); test.readStringXml(xmlString);
*/
Mapmap=readStringXmlOut(xmlString);
Iteratoriters=map.keySet().iterator();
while(iters.hasNext()){
Stringkey=iters.next().toString();// 拿到鍵

Stringval=map.get(key).toString();// 拿到值

System.out.println(key+"="+val);
}
Stringxml="137000000ff8080813349da9001334f0eed8c5923187000000ff8080813349da9001334f0eee045924";
parse(xml);
}

}

總結

以上是生活随笔為你收集整理的java解析xml字符串为实体(dom4j解析)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。