xmlhttp处理xml文档时需要注意的问题一

xmlhttp  获取的xml对象,解析时根据xml文档的格式,需要不同的处理细节。这里是编程过程需要注意的地方。

一定要注意xml文档的格式。注意元素<.... />与属性name="value"的区别。

根据不同的xml文档格式,解析时要使用不同的方法。 元素是Element,而属性是attribute。

一种数据,可以安排它的某些部分为element或者attribute,根据安排的不同,解析的方法也不同。

 

例如,对于如下 xml的解析方法

-----------------menu.xml is here---------------

 <?xml version="1.0" standalone="yes" ?>
<menu>
  <item xbm="0" xbmc="未知的性别" />
  <item xbm="1" xbmc="男" />
  <item xbm="2" xbmc="女" />
  <item xbm="9" xbmc="未说明的性别" />
</menu>

 

--------------------javascript----------------------------------------- 

 

<script language="javascript" type="text/javascript">
        // ---------------------测试函数一 -----------------------
        function func1()
        {
            var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
            xmlhttp.open("GET","http://localhost/menu.xml%22,false);
            xmlhttp.send();
            var xmldoc = xmlhttp.responseXML;
            var root = xmldoc.documentElement;
            alert(root.xml);
            var data = root.getElementsByTagName("item");
            for(var i=0;i<data.length;i++)
            {
                var item = data[i];
                alert("性别码=" + item.attributes[0].nodeValue + "\r\n" + "性别名称=" + item.attributes[0].nodeName);
            }
        }
    </script>

 

 

如果xml格式为:

<?xml version="1.0" standalone="yes" ?>
<menu>
  <item xbm="0" xbmc="未知的性别" />
  <item xbm="1" xbmc="男" />
  <item xbm="2" xbmc="女" />
  <item xbm="9" xbmc="未说明的性别" />
</menu>

 

解析方法为:

 

 <script language="javascript" type="text/javascript">
        // ---------------------测试函数一 -----------------------
        function func1()
        {
            var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0");
            xmlhttp.open("GET","http://localhost/dm_xb.xml%22,false);
            xmlhttp.send();
            var xmldoc = xmlhttp.responseXML;
            var data = xmldoc.getElementsByTagName("data");
            for(var i=0;i<data.length;i++)
            {
                var item = data[i];
                var xbm = item.getElementsByTagName("xbm")[0].firstChild.data;
                var xbmc = item.getElementsByTagName("xbmc")[0].firstChild.data;
                alert("性别码=" + xbm + "\r\n" + "性别名称=" + xbmc);
            }
        }
    </script>

原文地址:https://www.cnblogs.com/worldreason/p/1217546.html