<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                背景:上一篇[《【JavaScript】(5)——JavaScript與cookie、XML交互》](http://blog.csdn.net/helijie92902/article/details/50187647)見識了JavaScript的強大,感覺如何,要是感覺神奇的話,那么接下來的展示更會讓你覺得它簡直不可思議。本篇介紹JavaScript與XPath、JSON的交互,Are you ready? ### 一、JavaScript與XPath XPath即為?XML Path Language(XML路徑語言),它是一種用來確定XML(標準通用標記語言的子集)文檔中某部分位置的語言。XPath基于XML的樹狀結構,提供在數據結構樹中找尋節點的能力。 起初 XPath 的提出的初衷是將其作為一個通用的、介于XPointer與XSLT間的語法模型。但是 XPath 很快的被開發者采用來當作小型查詢語言。 XPath語法: ![](https://box.kancloud.cn/2016-03-28_56f8f89f8e4b3.jpg) XPath跨瀏覽器兼容 ~~~ //跨瀏覽器獲取單一節點 function selectSingleNode(xmlDom, xpath) { var node = null; if (typeof xmlDom.evaluate != 'undefined') { var patten = /\[(\d+)\]/g; var flag = xpath.match(patten); var num = 0; if (flag !== null) { num = parseInt(RegExp.$1) + 1; xpath = xpath.replace(patten, '[' + num + ']'); } var result = xmlDom.evaluate(xpath, xmlDom, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null); if (result !== null) { node = result.singleNodeValue; } } else if (typeof xmlDom.selectSingleNode != 'undefined') { node = xmlDom.selectSingleNode(xpath); } return node; } //跨瀏覽器獲取節點集合 function selectNodes(xmlDom,xpath){ var nodes=[]; if(typeof xmlDom.evaluate!='undefined'){ var patten=/\[(\d+)\]/g; var flag=xpath.match(patten); var num=0; if(flag!==null){ num=parseInt(RegExp.$1)+1; xpath=xpath.replace(patten,'['+num+']'); } var node=null; var result=xmlDom.evaluate('root/user',xmlDom,null, XPathResult.ORDERED_NODE_ITERATOR_TYPE,null); if(result!==null){ while((node=result.iterateNext())!==null){ nodes.push(node); } } }else if(typeof xmlDom.selectNodes!='undefined'){ nodes=xmlDom.selectNodes(xpath); } return nodes; } ~~~ ### 二、JavaScript與JSON 前面我們探討了XML的結構化數據,但開發人員還是覺得這種微型的數據結構還是過于煩瑣、冗長。為了解決這個問題,JSON的結構化數據出現了。JSON是JavaScript的一個嚴格的子集,利用JavaScript中的一些模式來表示結構化數據。 JSON(JavaScript Object Notation) 是一種輕量級的數據交換格式,我們稱之為JavaScript對象表示法。使用JSON進行數據傳輸的優勢之一是JSON實際上就是JavaScript。它基于ECMAScript第3版中JavaScript對象字面量語法子集的一種文本格式。這表示可以使用responseText從服務器中檢索JSON數據,然后再使用JavaScript的eval()方法將JSON字符串轉換成JavaScript對象,那么,使用附加JavaScript就可以很地從該對象中提取數據,而不需要處理DOM。 另外,也有針對大部分編程語言(包括C++,C#,ColdFusion、Java、Perl、PHP和Python)的JSON庫,這些庫能將上述語言格式化數據轉換成JSON格式。 早期JSON字符串解析為JavaScript原生值,早期采用的是eval()函數。但這種方法既不安全,可能會執行一些惡意代碼。 ~~~ var box='[{"name":"a","age":1},{"name":"b","age":2}]'; alert(box); //JSON字符串 ~~~ ![](https://box.kancloud.cn/2016-03-28_56f8f89fa979d.jpg) ~~~ var json=eval(box); //使用eval()函數解析 alert(json); //得到JavaScript原生 ~~~ ![](https://box.kancloud.cn/2016-03-28_56f8f89fbad83.jpg) JSON對象提供了兩個方法,一個是將原生JavaScript值轉換為JSON字符串: stringify(); 另一個是將JSON字符串轉換為JavaScript原生值: parse()。 ~~~ var box = '[{"name": "a","age": 1},{"name" : "b","age" : 2}]'; var json = JSON.parse(box, function(key,value) { if (key == 'name') { return'Mr.' + value; } else { return value; } }); alert(json[0].name); ~~~ ![](https://box.kancloud.cn/2016-03-28_56f8f89fd1cc2.jpg) ~~~ <span style="font-family:KaiTi_GB2312;font-size:18px;"><strong>var box=[{name:'a',age:1,height:177},{name:'b',age:2,height:188}]; var json=JSON.stringify(box,function(key,value){ switch(key){ case'name': return'Mr.'+value; case'age': return value+'歲'; default: return value; } },4); alert(json);</strong></span> ~~~ ![](https://box.kancloud.cn/2016-03-28_56f8f89fe2629.jpg) ### 三、學習心得 1、不同的瀏覽器對代碼的要求不同,要想“八面玲瓏”,就必須要兼容。兼容一直都是這個時代的主題。 2、即使自己不是一種軟件開發語言,也能很好的為其他開發語言服務。天生我才必有用。 3、時代在前進,軟件的開發也在完善。只要向前走,我們每個人都會變得越來越好!
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看