<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
>
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > JS+XML </ title >
< script > ...
loadXML = function(xmlFile)
...{
var xmlDoc;
if(window.ActiveXObject)
...{
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
else if (document.implementation&&document.implementation.createDocument)
...{
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFile);
}
else
...{
return null;
}
return xmlDoc;
}
checkXMLDocObj = function(xmlFile)
...{
var xmlDoc = loadXML(xmlFile);
if(xmlDoc==null)
...{
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
window.location.href='/Index.aspx';
}
n = xmlDoc.getElementsByTagName('Login/EconomyProperty')[0].childNodes;
e= document.getElementById("oid");
l = n.length;
for(var i=0; i<l; i++)
...{
var option = document.createElement('option');
option.value = n[i].getAttribute('Value');
option.innerHTML = n[i].getAttribute('Text');
e.appendChild(option);
}
return xmlDoc;
}
var xmlDoc = checkXMLDocObj('Login.xml');
//var v = xmlDoc.getElementsByTagName('Login/Weapon/W')[0].childNodes.getAttribute('Text')
</ script >
</ head >
< body onload ="checkXMLDocObj('Login.xml')" >
< form id ="form1" runat ="server" >
< div >< select id ="oid" ></ select ></ div >
< div >
上面的访问代码中,我们是通过xmlDoc.getElementsByTagName(xPath)来进行的.
还可以通过xmlDoc.documentElement.childNodes(1)..childNodes(0).getAttribute('Text')进行访问.
一些常用方法:
xmlDoc.documentElement.childNodes(0).nodeName,可以得到这个节点的名称.
xmlDoc.documentElement.childNodes(0).nodeValue,可以得到这个节点的值. 这个值是来自于这样子的xml格式: < a > b </ b > , 于是可以得到b这个值.
xmlDoc.documentElement.childNodes(0).hasChild,可以判断是否有子节点
根据我的经验,最好是使用getElementsByTagName(xPath)的方法对节点进行访问,因为这样子可以直接通过xPath来定位节点,这样子会有更好的性能.
</ div >
</ form >
</ body >
</ html >
< html xmlns ="http://www.w3.org/1999/xhtml" >
< head runat ="server" >
< title > JS+XML </ title >
< script > ...
loadXML = function(xmlFile)
...{
var xmlDoc;
if(window.ActiveXObject)
...{
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
else if (document.implementation&&document.implementation.createDocument)
...{
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFile);
}
else
...{
return null;
}
return xmlDoc;
}
checkXMLDocObj = function(xmlFile)
...{
var xmlDoc = loadXML(xmlFile);
if(xmlDoc==null)
...{
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
window.location.href='/Index.aspx';
}
n = xmlDoc.getElementsByTagName('Login/EconomyProperty')[0].childNodes;
e= document.getElementById("oid");
l = n.length;
for(var i=0; i<l; i++)
...{
var option = document.createElement('option');
option.value = n[i].getAttribute('Value');
option.innerHTML = n[i].getAttribute('Text');
e.appendChild(option);
}
return xmlDoc;
}
var xmlDoc = checkXMLDocObj('Login.xml');
//var v = xmlDoc.getElementsByTagName('Login/Weapon/W')[0].childNodes.getAttribute('Text')
</ script >
</ head >
< body onload ="checkXMLDocObj('Login.xml')" >
< form id ="form1" runat ="server" >
< div >< select id ="oid" ></ select ></ div >
< div >
上面的访问代码中,我们是通过xmlDoc.getElementsByTagName(xPath)来进行的.
还可以通过xmlDoc.documentElement.childNodes(1)..childNodes(0).getAttribute('Text')进行访问.
一些常用方法:
xmlDoc.documentElement.childNodes(0).nodeName,可以得到这个节点的名称.
xmlDoc.documentElement.childNodes(0).nodeValue,可以得到这个节点的值. 这个值是来自于这样子的xml格式: < a > b </ b > , 于是可以得到b这个值.
xmlDoc.documentElement.childNodes(0).hasChild,可以判断是否有子节点
根据我的经验,最好是使用getElementsByTagName(xPath)的方法对节点进行访问,因为这样子可以直接通过xPath来定位节点,这样子会有更好的性能.
</ div >
</ form >
</ body >
</ html >
下面是XML(Login.xml)
<?
xml version="1.0" encoding="utf-8"
?>
< Login >
< Character >
< C Text ="adsfd" Value ="0" ></ C >
< C Text ="24324" Value ="1" ></ C >
< C Text ="234324" Value ="2" ></ C >
< C Text ="2434" Value ="3" ></ C >
< C Text ="24234" Value ="4" ></ C >
</ Character >
< Weapon >
< W Text ="234234" Value ="0" ></ W >
< W Text ="243233333423" Value ="1" ></ W >
</ Weapon >
< EconomyProperty >
< P Text ="abc" Value ="0" ></ P >
< P Text ="sdddf" Value ="1" ></ P >
< P Text ="sadffsaf" Value ="2" ></ P >
< P Text ="asdfsaf" Value ="3" ></ P >
< P Text ="safd" Value ="4" ></ P >
</ EconomyProperty >
</ Login >
< Login >
< Character >
< C Text ="adsfd" Value ="0" ></ C >
< C Text ="24324" Value ="1" ></ C >
< C Text ="234324" Value ="2" ></ C >
< C Text ="2434" Value ="3" ></ C >
< C Text ="24234" Value ="4" ></ C >
</ Character >
< Weapon >
< W Text ="234234" Value ="0" ></ W >
< W Text ="243233333423" Value ="1" ></ W >
</ Weapon >
< EconomyProperty >
< P Text ="abc" Value ="0" ></ P >
< P Text ="sdddf" Value ="1" ></ P >
< P Text ="sadffsaf" Value ="2" ></ P >
< P Text ="asdfsaf" Value ="3" ></ P >
< P Text ="safd" Value ="4" ></ P >
</ EconomyProperty >
</ Login >