<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script language="javascript">
// 加载xml文档
function loadXML(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;
}// 首先对xml对象进行判断
function checkXMLDocObj(xmlFile) {
var xmlDoc = loadXML(xmlFile);
if (xmlDoc == null) {
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
window.location.href = '/';
}
return xmlDoc;
}// 然后开始获取需要的Login/Weapon/W的第一个节点的属性值
var xmlDoc = checkXMLDocObj('xml/starballPic.xml');
var v = xmlDoc.getElementsByTagName("Login/Weapon/W").length
alert(v);
</script>
</head><body></body>
</html>
<?xml version="1.0" encoding="utf-8" ?>
<Login>
    <Character>
        <C Text="热血" Value="0"></C>
        <C Text="弱气" Value="1"></C>
        <C Text="激情" Value="2"></C>
        <C Text="冷静" Value="3"></C>
        <C Text="冷酷" Value="4"></C>
    </Character>
    <Weapon>
        <W Text="光束剑" Value="0"></W>
        <W Text="光束配刀" Value="1"></W>
    </Weapon>
    <EconomyProperty>
        <P Text="平均型" Value="0"></P>
        <P Text="重视攻击" Value="1"></P>
        <P Text="重视敏捷" Value="2"></P>
        <P Text="重视防御" Value="3"></P>
        <P Text="重视命中" Value="4"></P>
    </EconomyProperty>
</Login>自己的代码ff报错,在网上找了几个demo也是同样ff报错你们试试ff下长度是0还是2,我这里ie是2,ff是0,在ff下访问其他属性一律报错错误: xmlDoc.getElementsByTagName("Login/Weapon/W")[0] is undefined
访问其他属性也是这个错误,莫名其妙了ff的版本3.5.13
javascript是启用状态

解决方案 »

  1.   

    var v = xmlDoc.getElementsByTagName("Login/Weapon/W").length
    红字部分应该是("W")吧,lz
      

  2.   

    var v = xmlDoc.getElementsByTagName("Login")[0].getElementsByTagName("Weapon")[0].getElementsByTagName("W").length;http://www.webdeveloper.com/forum/showthread.php?t=151580
      

  3.   

    编程时,一些报错,或是执行没反应,尽可能不要去怀疑浏览器,那么多年编程下来,只有java编写时碰到过一个这样的问题,发现是语言本身出错了,其它就没有碰到过。
      

  4.   

    var xmlDoc = checkXMLDocObj('xml/starballPic.xml');
    var v = xmlDoc.getElementsByTagName("Login")[0].getElementsByTagName("Weapon")[0].getElementsByTagName("W").length;错误: xmlDoc.getElementsByTagName("Login")[0] is undefined
    源文件:http://localhost:83/test.html
    行:36报错依旧
      

  5.   

    var v = xmlDoc.getElementsByTagName("Login").length
    alert(v);在FF下这样也报错,有经验的朋友帮忙看看吧,谢了
      

  6.   

    这个问题我知道,哇咔咔。因为我也遇到了,后来调试发现是
    这一句有问题xmlDoc = document.implementation.createDocument('', '', null);
    把else if (document.implementation && document.implementation.createDocument)里面的代码换成这种格式
     var xmlhttp = new window.XMLHttpRequest();  
        xmlhttp.open("GET", xmlFile, false);  
    就可以正常的读取数了,我是这样解决的,希望你也能解决。