心柿 發表於 2020-12-4 14:50:00

javascript如何读取xml?

<p>JavaScript读取xml的方法:使用DOMParser对象解析XML文本并返回一个XML Document对象。然后调用parseFromString()方法读取。</p>
<p>&nbsp;</p>
<p>JavaScript读取xml文件:</p>
<pre><code class="hljs javascript"><span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">loadXML(<span class="hljs-params">xmlFile){
      <span class="hljs-keyword">var</span> xmlDoc=<span class="hljs-literal">null;
      <span class="hljs-comment">//判断<span class="hljs-comment">浏览器</span><span class="hljs-comment">的类型
      <span class="hljs-comment">//支持IE<span class="hljs-comment">浏览器</span>
      <span class="hljs-keyword">if(!<span class="hljs-built_in">window.DOMParser &amp;&amp; <span class="hljs-built_in">window.ActiveXObject){
         <span class="hljs-keyword">var</span> xmlDomVersions = [<span class="hljs-string">'MSXML.2.DOMDocument.6.0',<span class="hljs-string">'MSXML.2.DOMDocument.3.0',<span class="hljs-string">'Microsoft.XMLDOM'];
            <span class="hljs-keyword">for(<span class="hljs-keyword">var i=<span class="hljs-number">0;i&lt;xmlDomVersions.length;i++){
                <span class="hljs-keyword">try{
                  xmlDoc = <span class="hljs-keyword">new ActiveXObject(xmlDomVersions);
                  <span class="hljs-keyword">break;
                }<span class="hljs-keyword">catch(e){
                }
            }
      }
      <span class="hljs-comment">//支持Mozilla浏览器
      <span class="hljs-keyword">else <span class="hljs-keyword">if(<span class="hljs-built_in">document.implementation &amp;&amp; <span class="hljs-built_in">document.implementation.createDocument){
            <span class="hljs-keyword">try{
                <span class="hljs-comment">/* document.implementation.createDocument('','',null); 方法的三个参数说明
               * 第一个参数是包含文档所使用的命名空间URI的字符串;
               * 第二个参数是包含文档根元素名称的字符串;
               * 第三个参数是要创建的文档类型(也称为doctype)
               */
                xmlDoc = <span class="hljs-built_in">document.implementation.createDocument(<span class="hljs-string">'',<span class="hljs-string">'',<span class="hljs-literal">null);
            }<span class="hljs-keyword">catch(e){
            }
      }
      <span class="hljs-keyword">else{
            <span class="hljs-keyword">return <span class="hljs-literal">null;
      }

      <span class="hljs-keyword">if(xmlDoc!=<span class="hljs-literal">null){
            xmlDoc.async = <span class="hljs-literal">false;
            xmlDoc.load(xmlFile);
      }
      <span class="hljs-keyword">return xmlDoc;
}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p>&nbsp;</p>
<p>JavaScript读取xml字符串:</p>
<pre><code class="hljs javascript"><span class="hljs-function"><span class="hljs-keyword">function <span class="hljs-title">loadXMLStr(<span class="hljs-params">xmlString){
      <span class="hljs-keyword">var xmlDoc=<span class="hljs-literal">null;
      <span class="hljs-comment">//判断浏览器的类型
      <span class="hljs-comment">//支持IE浏览器
      <span class="hljs-keyword">if(!<span class="hljs-built_in">window.DOMParser &amp;&amp; <span class="hljs-built_in">window.ActiveXObject){   <span class="hljs-comment">//window.DOMParser 判断是否是非ie浏览器
         <span class="hljs-keyword">var xmlDomVersions = [<span class="hljs-string">'MSXML.2.DOMDocument.6.0',<span class="hljs-string">'MSXML.2.DOMDocument.3.0',<span class="hljs-string">'Microsoft.XMLDOM'];
            <span class="hljs-keyword">for(<span class="hljs-keyword">var i=<span class="hljs-number">0;i&lt;xmlDomVersions.length;i++){
                <span class="hljs-keyword">try{
                  xmlDoc = <span class="hljs-keyword">new ActiveXObject(xmlDomVersions);
                  xmlDoc.async = <span class="hljs-literal">false;
                  xmlDoc.loadXML(xmlString); <span class="hljs-comment">//loadXML方法载入xml字符串
                  <span class="hljs-keyword">break;
                }<span class="hljs-keyword">catch(e){
                }
            }
      }
      <span class="hljs-comment">//支持Mozilla浏览器
      <span class="hljs-keyword">else <span class="hljs-keyword">if(<span class="hljs-built_in">window.DOMParser &amp;&amp; <span class="hljs-built_in">document.implementation &amp;&amp; <span class="hljs-built_in">document.implementation.createDocument){
         <span class="hljs-keyword">try{
             <span class="hljs-comment">/* DOMParser 对象解析 XML 文本并返回一个 XML Document 对象。
             * 要使用 DOMParser,使用不带参数的构造<span class="hljs-comment">函数</span><span class="hljs-comment">来实例化它,然后调用其 parseFromString() 方法
             * parseFromString(text, contentType) 参数text:要解析的 XML 标记 参数contentType文本
             *的内容类型
             * 可能是 "text/xml" 、"application/xml" 或 "application/x<span class="hljs-comment">html</span><span class="hljs-comment">+xml" 中的一个。
             *注意,不支持 "text/<span class="hljs-comment">html</span><span class="hljs-comment">"。
               */
                domParser = <span class="hljs-keyword">newDOMParser();
                xmlDoc = domParser.parseFromString(xmlString, <span class="hljs-string">'text/xml');
            }<span class="hljs-keyword">catch(e){
            }
      }
      <span class="hljs-keyword">else{
            <span class="hljs-keyword">return <span class="hljs-literal">null;
      }

      <span class="hljs-keyword">return xmlDoc;
}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre>
<p><span style="position: relative; left: -100000px">广州品牌设计公司https://www.houdianzi.com</span> <span style="position: relative; left: -100000px">PPT模板下载大全https://redbox.wode007.com</span></p>
<p>HTML代码测试:</p>
<pre><code class="hljs xml"><span class="hljs-tag">&lt;<span class="hljs-name">script <span class="hljs-attr">type=<span class="hljs-string">"text/javascript"&gt;<span class="javascript">
<span class="hljs-built_in">window.onload = <span class="hljs-function"><span class="hljs-keyword">function(<span class="hljs-params">){
                <span class="hljs-keyword">var text = <span class="hljs-built_in">document.getElementById(<span class="hljs-string">'aaa').value;
                <span class="hljs-keyword">var xmldoc=loadXMLStr(text);
               <span class="hljs-keyword">var elements = xmldoc.getElementsByTagName(<span class="hljs-string">"major");
               <span class="hljs-keyword">for (<span class="hljs-keyword">var i = <span class="hljs-number">0; i &lt; elements.length; i++) {
                        <span class="hljs-keyword">var value = elements.getElementsByTagName(<span class="hljs-string">"class")[<span class="hljs-number">0].firstChild.nodeValue;
                        alert(value);                                       
                }
        }
<span class="hljs-tag">&lt;/<span class="hljs-name">script&gt;

<span class="hljs-tag">&lt;<span class="hljs-name">textarea <span class="hljs-attr">id=<span class="hljs-string">"aaa"&gt;
<span class="hljs-tag">&lt;<span class="hljs-name">IS&gt;
    <span class="hljs-tag">&lt;<span class="hljs-name">year <span class="hljs-attr">time=<span class="hljs-string">"2014"&gt;
      <span class="hljs-tag">&lt;<span class="hljs-name">major <span class="hljs-attr">name=<span class="hljs-string">"Computer Science"&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1401<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1402<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1403<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1404<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
      <span class="hljs-tag">&lt;/<span class="hljs-name">major&gt;
      <span class="hljs-tag">&lt;<span class="hljs-name">major <span class="hljs-attr">name=<span class="hljs-string">"Communication Engineering"&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1405<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1406<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1407<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1408<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
      <span class="hljs-tag">&lt;/<span class="hljs-name">major&gt;
    <span class="hljs-tag">&lt;/<span class="hljs-name">year&gt;

    <span class="hljs-tag">&lt;<span class="hljs-name">year <span class="hljs-attr">time=<span class="hljs-string">"2013"&gt;
      <span class="hljs-tag">&lt;<span class="hljs-name">major <span class="hljs-attr">name=<span class="hljs-string">"Computer Science"&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1301<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1302<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1303<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1304<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
      <span class="hljs-tag">&lt;/<span class="hljs-name">major&gt;
      <span class="hljs-tag">&lt;<span class="hljs-name">major <span class="hljs-attr">name=<span class="hljs-string">"Communication Engineering"&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1305<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1306<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1307<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
            <span class="hljs-tag">&lt;<span class="hljs-name">class&gt;1308<span class="hljs-tag">&lt;/<span class="hljs-name">class&gt;
      <span class="hljs-tag">&lt;/<span class="hljs-name">major&gt;
    <span class="hljs-tag">&lt;/<span class="hljs-name">year&gt;
<span class="hljs-tag">&lt;/<span class="hljs-name">IS&gt;
<span class="hljs-tag">&lt;/<span class="hljs-name">textarea</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></code></pre><br><br>
来源:https://www.cnblogs.com/qianxiaox/p/14085786.html
頁: [1]
查看完整版本: javascript如何读取xml?