大战熟女丰满人妻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學習之旅吧!

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲a视频 | 毛片短视频 | 国产伦精品一区二区三区网站 | 妇女bbw奶水bbw | 色偷偷精品视频在线播放 | 久久久久久久综合狠狠综合 | 欧美午夜视频一区二区三区 | 国产不卡视频在线播放 | 欧美日本俄罗斯一级毛片 | 久久国产精品2020盗摄 | 久久精品操 | 午夜撸 | 亚洲精品久久久久久下一站 | 亚洲精品欧美在线 | 99久久精品视香蕉蕉er热资源 | 欧洲精品在线观看 | 久久成人亚洲香蕉草草 | 一本大道高清香蕉中文大在线 | 97欧美 | 久操国产视频 | 九九爱这里只有精品 | 伊人影院中文字幕 | 成人a毛片一级 | 日本成人一区二区三区 | 亚洲已满18点击进入在线观看 | 国产一级一级毛片 | 日韩欧美一区二区三区四区 | 91在线九色| 欧美激情一区二区三区中文字幕 | 日韩欧美国产亚洲 | 一区二区三区四区在线视频 | 韩国女主播一区二区三区视频 | 天天插日日操 | 青青久在线视频免费视频 | 日本成人一区 | 青青青草国产 | 四虎影视免费 | 精品国产999 | 久久国产乱子伦精品免费强 | 久草手机视频在线 | 尹人视频在线观看 |