軟體測試常用檔案之XML
隨著網際網路的發展,
Web
應用程式的豐富,開發人員越來越希望能夠使用客戶端來操作
XML
技術。而
XML
技術一度成為儲存和傳輸結構化資料的標準。
一.IE 中的 XML
在統一的正式規範出來以前,瀏覽器對於XML 的解決方案各不相同。 DOM2 級提出了動態建立 XML DOM 規範, DOM3 進一步增強了 XML DOM 。所以,在不同的瀏覽器實現 XML 的處理是一件比較麻煩的事情。
1. 建立 XMLDOM 物件
IE 瀏覽器是第一個原生支援 XML 的瀏覽器,而它是透過 ActiveX 物件實現的。這個物件,只有 IE 有,一般是 IE9 之前採用。微軟當年為了開發人員方便的處理 XML ,建立了 MSXML 庫,但卻沒有讓 Web 開發人員透過瀏覽器訪問相同的物件。
var xmlDom=new ActiveXObject('MSXML2.DOMDocument')
ActiveXObject 型別
XML 版本字串說明
Microsoft.XmlDom 最初隨同 IE 釋出,不建議使用
MSXML2.DOMDocument 指令碼處理而更新的版本,僅在特殊情況作為備份用
MSXML2.DOMDocument.3.0 在 JavaScript 中使用,這是最低的建議版本
MSXML2.DOMDocument.4.0 指令碼處理時並不可靠,使用這個版本導致安全警告
MSXML2.DOMDocument.5.0 指令碼處理時並不可靠,使用這個版本導致安全警告
MSXML2.DOMDocument.6.0 指令碼能夠可靠處理的最新版本
PS :在這六個版本中微軟只推薦三種:
1.MSXML2.DOMDocument.6.0 最可靠最新的版本
2.MSXML2.DOMDocument.3.0 相容性較好的版本
3.MSXML2.DOMDocument 僅針對 IE5.5 之前的版本
PS :這三個版本在不同的 windows 平臺和瀏覽器下會有不同的支援,那麼為了實現相容,我們應該考慮這樣操作:從 6.0->3.0-> 備用版本這條路線進行實現。
function createXMLDOM(){
var version=[
'MSXML2.DOMDocument.6.0',
'MSXML2.DOMDocument.3.0',
'MSXML2.DOMDocument'
];
for(var i=0;i<version.length;i++){
try{
var xmlDom=new ActiveXObject(version<i>);
return xmlDom;
}catch(e){
// 跳過
}
}
throw new Error(' 您的系統或瀏覽器不支援 MSXML ! ');// 迴圈後丟擲錯誤
}
2. 載入 XML
如果已經獲取了XMLDOM 物件,那麼可以使用 loadXML() 和 load() 這兩個方法可以分別載入 XML 字串或 XML 檔案。
xmlDom.loadXML('<root version="1.0"><user>Lee</user></root>');
alert(xmlDom.xml);
PS : loadXML 引數直接就是 XML 字串,如果想效果更好,可以新增換行符 \n 。 .xml 屬性可以序列化 XML ,獲取整個 XML 字串。
xmlDom.load('test.xml');// 載入一個 XML 檔案
alert(xmlDom.xml);
當你已經可以載入了XML ,那麼你就可以用之前學習的 DOM 來獲取 XML 資料,比如標籤內的某個文字。
var user=xmlDom.getElementsByTagName('user')[0];// 獲取 <user> 節點
alert(user.tagName);// 獲取 <user> 元素標籤
alert(user.firstChild.nodeValue);// 獲取 <user> 裡的值 Lee
DOM 不單單可以獲取 XML 節點,也可以建立。
var email=xmlDom.createElement('email');
xmlDom.documentElement.appendChild(email);
3. 同步及非同步
load() 方法是用於伺服器端載入 XML 的,並且限制在同一臺伺服器上的 XML 檔案。那麼在載入的時候有兩種模式:同步和非同步。
所謂同步:就是在載入XML 完成之前,程式碼不會繼續執行,直到完全載入了 XML 再返回。好處就是簡單方便、壞處就是如果載入的資料停止響應或延遲太久,瀏覽器會一直堵塞從而造成假死狀態。
xmlDom.async=false;// 設定同步, false ,可以用 PHP 測試假死
所謂非同步:就是在載入XML 時, JavaScript 會把任務丟給瀏覽器內部後臺去處理,不會造成堵塞,但要配合 readystatechange 事件使用,所以,通常我們都使用非同步方式。
xmlDom.async=true;// 設定非同步,預設
透過非同步載入,我們發現獲取不到XML 的資訊。原因是,它並沒有完全載入 XML 就返回了,也就是說,在瀏覽器內部載入一點,返回一點,載入一點,返回一點。這個時候,我們需要判斷是否完全載入,並且可以使用了,再進行獲取輸出。
XML DOM 中 readystatechange 事件
就緒狀態說明
1DOM 正在載入
2DOM 已經載入完資料
3DOM 已經可以使用,但某些部分還無法訪問
4DOM 已經完全可以
PS : readyState 可以獲取就緒狀態值
var xmlDom=createXMLDOM();
xmlDom.async=true;// 非同步,可以不寫
xmlDom.>
if(xmlDom.readyState==4){// 完全載入了,再去獲取 XML
alert(xmlDom.xml);
}
}
xmlDom.load('test.xml');// 放在後面重點體現非同步的作用
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69914734/viewspace-2657267/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 常用的軟體測試工具
- 軟體測試常用術語表
- 軟體測試常用的工具都有哪些-測試常用工具
- 軟體測試要學什麼(7)軟體測試常用工具
- 軟體測試之易用性測試
- 軟體測試之測試分類_1.4
- 軟體測試培訓教程:軟體測試面試之怎麼測試刷抖音?面試
- 軟體測試-各個特性常用特性
- 軟體測試之我看
- 軟體測試招聘之難
- 軟體產品測試之效能效率測試
- 軟體測試之登入測試詳解
- 軟體安全性測試要點有哪些?常用軟體安全測試工具分享
- 有效提升軟體產品質量,測試人員必備軟體測試常用方法
- 隱藏在xml檔案中的惡意軟體XML
- 軟體測試之我見 (轉)
- 軟體驗收測試 第三方軟體測試 軟體功能測試 軟體資訊保安測試
- 軟體測試江湖之公會武器之爭
- 軟體測試學習教程——WEB測試之JS記憶體WebJS記憶體
- 軟體驗收測試之α測試和β測試,如何選擇權威的軟體檢測機構
- 【軟體測試】你最常用的web測試-瀏覽器相容性測試Web瀏覽器
- 軟體測試工具之開源測試工具彙總
- Android軟體測試的日誌檔案抓取簡介Android
- 【軟體測試】——介面測試
- 軟體測試——三、軟體測試的分類
- 軟體驗收測試之α測試和β測試分別是什麼?
- 軟體測試之網站測試如何進行?測試小攻略走起!網站
- 軟體工程——軟體測試軟體工程
- 軟體測試
- 軟體測試之資料庫測試技術系列七資料庫
- 軟體測試之Web測試如何進行?廣東好口碑軟體測評公司推薦Web
- 第三方軟體測試機構簡析軟體測試之原則
- 軟體測試教程之手機軟體測試方法
- 軟體測試學習教程—軟體測試質量
- 軟體測試學習 ——五種軟體測試模型模型
- 軟體測試-測試計劃
- [軟考考點解析]軟體設計師--常用媒體檔案格式
- Android之XML檔案解析AndroidXML