<!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>下面是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>
JS加载XML与DOM操作
本文介绍了一种使用JavaScript加载XML文件并解析其内容的方法。通过`getElementsByTagName`和DOM节点操作实现了XML数据的动态加载与展示。此外还讨论了不同浏览器的兼容性问题及XML数据的访问技巧。
414

被折叠的 条评论
为什么被折叠?



