最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

js處理xml文件方法示例詳解

 更新時(shí)間:2023年08月21日 11:58:46   作者:黑蘿卜不黑  
這篇文章主要為大家介紹了js處理xml文件方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

具體需求

最近遇到一個(gè)前端全權(quán)處理xml數(shù)據(jù)的需求,第一次處理這種問題有些愁人呀!經(jīng)過反復(fù)調(diào)研和技術(shù)論證終于解決了,這里做個(gè)小小記錄,分享給需要的小伙伴。

實(shí)現(xiàn)方法

前端讀取xml文件的數(shù)據(jù)后,根據(jù)某些規(guī)則做數(shù)據(jù)界面展示,用戶可進(jìn)行輸入輸出操作,操作過后保存成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;
  // 轉(zhuǎn)為字符串形式的xml
  var str = new XMLSerializer().serializeToString(xmlDoc)
  return str;
}

通過以上兩個(gè)方法可以拿到xml文件中的數(shù)據(jù)DOM格式和字符串格式,這里親身實(shí)驗(yàn),DOM格式數(shù)據(jù)操作起來難度交大,需要寫的代碼比較復(fù)雜,所以這里選擇了處理字符串格式。

插件x2js

這里不得不提到一個(gè)特別棒的插件x2js,該庫提供 XML 到 JSON(JavaScript 對象)和反之亦然的 javascript 轉(zhuǎn)換功能。該庫非常小,沒有任何依賴關(guān)系。

// 導(dǎo)入插件
<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字符串?dāng)?shù)據(jù)轉(zhuǎn)成json格式
let data = x2js.xml_str2json(xmlStr)
// json格式轉(zhuǎn)成字符串
let str = x2js.json2xml_str(data)

加載xml數(shù)據(jù)轉(zhuǎn)成成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è)務(wù)邏輯操作。完成數(shù)據(jù)操作后轉(zhuǎn)換成字符串格式。

以上就是js處理xml文件方法示例詳解的詳細(xì)內(nèi)容,更多關(guān)于js處理xml文件的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用BootStrapValidator完成前端輸入驗(yàn)證

    使用BootStrapValidator完成前端輸入驗(yàn)證

    這篇文章主要為大家詳細(xì)介紹了使用BootStrapValidator來完成前端輸入驗(yàn)證,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • JavaScript隱式類型轉(zhuǎn)換代碼實(shí)例

    JavaScript隱式類型轉(zhuǎn)換代碼實(shí)例

    這篇文章主要介紹了JavaScript隱式類型轉(zhuǎn)換代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • JavaScript 對象深入學(xué)習(xí)總結(jié)(經(jīng)典)

    JavaScript 對象深入學(xué)習(xí)總結(jié)(經(jīng)典)

    JavaScript中,除了五種原始類型(即數(shù)字,字符串,布爾值,null,undefined)之外的都是對象了,所以,不把對象學(xué)明白怎么繼續(xù)往下學(xué)習(xí)呢?本篇文章給大家分享javascript對象深入學(xué)習(xí)總結(jié),小伙伴們跟著小編一起深入學(xué)習(xí)吧
    2015-09-09
  • JS實(shí)現(xiàn)“隱藏與顯示”功能(多種方法)

    JS實(shí)現(xiàn)“隱藏與顯示”功能(多種方法)

    這篇文章主要介紹了JS實(shí)現(xiàn)“隱藏與顯示”功能的多種方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2016-11-11
  • JavaScript 讀URL參數(shù)增強(qiáng)改進(jìn)版版

    JavaScript 讀URL參數(shù)增強(qiáng)改進(jìn)版版

    網(wǎng)上有不少JavaScript 讀 URL 參數(shù)的函數(shù),但沒考慮到 URL 中帶 # 符的情況,我的可以處理這種情況,并使用了點(diǎn)對象寫法,優(yōu)化了些性能。
    2008-10-10
  • JS中惰性函數(shù)的使用小結(jié)

    JS中惰性函數(shù)的使用小結(jié)

    JS中的惰性函數(shù)(Lazy Function)其實(shí)是一種非常巧妙的性能優(yōu)化設(shè)計(jì)模式,就是利用js的動態(tài)重寫函數(shù)的思想,用第一次調(diào)用時(shí)微乎其微的代價(jià),換取了后續(xù)所有調(diào)用的極致性能,下面就來詳細(xì)的介紹一下
    2026-05-05
  • Javascript模塊化機(jī)制實(shí)現(xiàn)原理詳解

    Javascript模塊化機(jī)制實(shí)現(xiàn)原理詳解

    這篇文章主要介紹了Javascript模塊化機(jī)制實(shí)現(xiàn)原理詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • 最新評論

    措美县| 周口市| 裕民县| 禄劝| 古浪县| 临湘市| 河间市| 平阳县| 平阴县| 会泽县| 固安县| 横山县| 武平县| 崇左市| 平度市| 舟曲县| 道孚县| 故城县| 老河口市| 辽宁省| 乐昌市| 邮箱| 微山县| 那曲县| 海兴县| 平遥县| 沂水县| 宜城市| 清新县| 南川市| 上饶市| 潮安县| 余干县| 台前县| 抚远县| 乌审旗| 娄烦县| 平乐县| 昭平县| 虹口区| 皮山县|