js處理xml文件方法示例詳解
具體需求
最近遇到一個前端全權處理xml數(shù)據(jù)的需求,第一次處理這種問題有些愁人呀!經(jīng)過反復調研和技術論證終于解決了,這里做個小小記錄,分享給需要的小伙伴。
實現(xiàn)方法
前端讀取xml文件的數(shù)據(jù)后,根據(jù)某些規(guī)則做數(shù)據(jù)界面展示,用戶可進行輸入輸出操作,操作過后保存成xml數(shù)據(jù)格式的字符串。
使用XMLHttpRequest讀取本地xml文件
/** * 獲取xml文件數(shù)據(jù) * @param path 文件路徑 * @return DOM格式數(shù)據(jù) */ function loadXML(path) { let xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); } else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET",path,false); xmlhttp.send(); return xmlhttp.responseXML; }
使用XMLHttpRequest讀取xml文件
獲得字符串形式的xml
/** * 獲取xml文件數(shù)據(jù) * @param path 文件路徑 * @return 字符串格式數(shù)據(jù) */ function loadXMLDoc(path) { let xmlhttp; if (window.XMLHttpRequest){ xmlhttp=new XMLHttpRequest(); } else{ xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.open("GET",path,false); xmlhttp.send(); // xml的document const xmlDoc = xmlhttp.responseXML; // 轉為字符串形式的xml var str = new XMLSerializer().serializeToString(xmlDoc) return str; }
通過以上兩個方法可以拿到xml文件中的數(shù)據(jù)DOM格式和字符串格式,這里親身實驗,DOM格式數(shù)據(jù)操作起來難度交大,需要寫的代碼比較復雜,所以這里選擇了處理字符串格式。
插件x2js
這里不得不提到一個特別棒的插件x2js
,該庫提供 XML 到 JSON(JavaScript 對象)和反之亦然的 javascript 轉換功能。該庫非常小,沒有任何依賴關系。
// 導入插件 <script src="js/xml2json.js"></script> let xmlStr= "<?xml version="1.0" encoding="UTF-8"?> <projectDescription> <name>x2js</name> <comment></comment> <projects> </projects> <buildSpec> </buildSpec> <natures> </natures> </projectDescription> " // 將xml字符串數(shù)據(jù)轉成json格式 let data = x2js.xml_str2json(xmlStr) // json格式轉成字符串 let str = x2js.json2xml_str(data)
加載xml數(shù)據(jù)轉成成json格式
function loadXMLDoc(dname) { if (window.XMLHttpRequest) { xhttp=new XMLHttpRequest(); } else { xhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xhttp.open("GET",dname,false); xhttp.send(); return xhttp.responseXML; } var xmlDoc = loadXMLDoc("test.xml"); var x2js = new X2JS(); var jsonObj = x2js.xml2json(xmlDoc);
通過操作json數(shù)據(jù),可以快速開發(fā)頁面布局,完成業(yè)務邏輯操作。完成數(shù)據(jù)操作后轉換成字符串格式。
以上就是js處理xml文件方法示例詳解的詳細內(nèi)容,更多關于js處理xml文件的資料請關注腳本之家其它相關文章!
相關文章
JavaScript簡單遍歷DOM對象所有屬性的實現(xiàn)方法
這篇文章主要介紹了JavaScript簡單遍歷DOM對象所有屬性的實現(xiàn)方法,涉及JavaScript針對頁面元素屬性操作的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-10-10JS實現(xiàn)無限級網(wǎng)頁折疊菜單(類似樹形菜單)效果代碼
這篇文章主要介紹了JS實現(xiàn)無限級網(wǎng)頁折疊菜單(類似樹形菜單)效果代碼,涉及JavaScript基于鼠標事件實現(xiàn)針對頁面元素結點的遍歷及樣式操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09