大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 淺談XML數據交互

淺談XML數據交互

更新時間:2020-11-30 17:44:45 來源:動力節點 瀏覽1914次

XML可用于交換數據。基于XML可以在不兼容的系統之間交換數據,計算機系統和數據庫系統所存儲的數據有多種形式,對于開發者來說,最耗時間的工作就是在遍布網絡的系統之間交換數據。把數據轉換為XML格式存儲將大大減少交換數據時的復雜性,還可以使這些數據能被不同的程序讀取。本文我們就來談一談XML數據交互

為了更好地理解XML數據交互,我們先來了解什么是數據交互。數據交換是指為了滿足不同信息系統之間數據資源的共享需要,依據一定的原則,采取相應的技術,實現不同信息系統之間數據資源共享的過程。

1、客戶端與服務器常用數據交互格式有xml、json、html。

2、數據交互格式應用場景

移動端(安卓、IOS)通訊方式采用http協議+JSON格式走restful風格。

很多互聯網項目都采用Http協議+JSON

因為xml比較重WebService服務采用http+xml格式銀行項目使用比較多

我們先以一張圖來初步了解XML的數據傳輸:

如圖所示:

image.png 

3、XML數據傳輸過程中的組件功能

服務器端:

服務器端組件主要完成以下三個功能:

第一:網絡監聽功能

當接收到客戶端傳來的請求時,會觸發一個監聽事件,在這一事件的處理代碼中得到客戶端的查詢請求,然后執行數據庫操作

第二:查詢數據庫功能

得到客戶端的請求內容,在進入所在的數據庫里查詢到客戶端所需要的內容,一般是把查詢結果放進一個Map集合當中

第三:將查詢結果封裝成xml文件格式發送給客戶端

為了把map集合轉換成xml格式的文件,我們需要用到以下代碼實例:

代碼如下:

/**
?????* map轉xml
?????* @param map
?????* @param body xml元素
?????* @return
?????*/ ?
????private static Element map2xml(Map<String, Object> map, Element body) { ?
????????Iterator<Map.Entry<String, Object>> entries = map.entrySet().iterator(); ?
????????while (entries.hasNext()) { ?
????????????Map.Entry<String, Object> entry = entries.next(); ?
????????????String key = entry.getKey(); ?
????????????Object value = entry.getValue(); ?
????????????if(key.startsWith("@")){ ???//屬性 ?
????????????????body.addAttribute(key.substring(1, key.length()), value.toString()); ?
????????????} else if(key.equals("#text")){ //有屬性時的文本 ?
????????????????body.setText(value.toString()); ?
????????????} else { ?
????????????????if(value instanceof java.util.List ){ ?
????????????????????List list = (List)value; ?
????????????????????Object obj; ?
????????????????????for(int i=0; i<list.size(); i++){ ?
????????????????????????obj = list.get(i); ?
????????????????????????//list里是map或String,不會存在list里直接是list的, ?
????????????????????????if(obj instanceof java.util.Map){ ?
????????????????????????????Element subElement = body.addElement(key); ?
????????????????????????????map2xml((Map)list.get(i), subElement); ?
????????????????????????} else { ?
????????????????????????????body.addElement(key).setText((String)list.get(i)); ?
????????????????????????} ?
????????????????????} ?
????????????????} else if(value instanceof java.util.Map ){ ?
????????????????????Element subElement = body.addElement(key); ?
????????????????????map2xml((Map)value, subElement); ?
????????????????} else { ?
????????????????????body.addElement(key).setText(value.toString()); ?
????????????????} ?
????????????} ?
????????????//System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); ?
????????} ?
????????return body; ?
????} ?

客戶端:

客戶端的組件主要完成以下三個方面的工作:

第一:與服務器端建立連接

通過服務器端的監聽程序建立連接

第二:發送查詢請求

用戶在客戶端發出查詢請求,通過建立的連接把請求發送到服務器端

第三:接收服務器端返回的xml文件,一般都是把它轉換為Map集合的形式,并從中提取出所需的各項數據

為了把xml格式的文件轉換成map集合,我們需要用到以下代碼實例:

代碼如下:

將XML文檔轉換為Map集合,方式也比較多,下面這種方式是DOM4J的方式:

Map<String, String> map=new HashMap<String,String>();
try {
InputStream is = new FileInputStream(new File("config.xml"));
SAXReader sax=new SAXReader(); //創建解析器
Document doc=sax.read(is); //創建對應的Document對象
Element root=doc.getRootElement(); //獲取XML文檔的根節點對象

List<Element> list = root.elements();
//獲取根節點下的所有的子節點
for (Element ele : list) { //遍歷根節點下的所有子節點并將其放入MAP對象中

map.put(ele.getName(), ele.getText());
}

is.close();
} catch (Exception e) {
e.printStackTrace();
}

XML除了用于交互數據,還可以從HTML中分離數據,甚至XML可以用于創建新的語言。總之,XML使用一個簡單而又靈活的標準格式,為基于Web的應用提供了一個描述數據和交換數據的有效手段。你是否被XML語言的強大所折服呢,還在等什么,快來觀看本站的XML教程開始你的XML學習之旅吧!

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美999| 国产精品爱久久久久久久9999 | 精品视频一区二区三三区四区 | 国产人成激情视频在线观看 | 国产自产视频在线观看香蕉 | 色之综综 | 爱综合网| 欧美日本亚洲国产一区二区 | 日韩欧美色视频在线观看 | 色婷婷六月 | 国内精品久久久久久久久蜜桃 | 日韩免费一区二区 | 99热久久精品国产66 | 欧美xxxx4khd超高清 | 嫩草社区| 伊人俺去久久涩五月综合 | 久久九九精品一区二区 | 精品久久一 | 久久综合一区 | 国产精品乱码高清在线观看 | 成人综合久久综合 | 久久综合干 | 精品国产欧美一区二区 | 国产精品伦视频观看免费 | 亚洲精品乱码久久久久久蜜桃 | 日本一级毛片一级裸片 | 一区二区日本 | 国产精品美女久久久久网 | 久久两性视频 | 国产亚洲精品国产第一 | 激情九月天 | 日日操夜夜摸 | 成人久久在线 | 奇米成人 | 婷婷免费高清视频在线观看 | 羞羞的视频在线免费观看 | 国产不卡在线 | 婷婷综合色伊人阁 | 特级毛片aaaa级毛片免费 | 国产美女流白浆 | 国产一区私人高清影院 |