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>