最近做了个小抽奖,名单就用xml来生成了
<?xml version="1.0" encoding="utf-8"?> <names> <name id="7">a君</name> <name id="9">b君</name> <name id="10">c君</name> <names>
/* # 读取文件 # xml文档路径 */ this.loadXML = function(xmlFile){ var xmlDoc; var xmlhttp = new window.XMLHttpRequest(); xmlhttp.open("GET",xmlFile,false); xmlhttp.send(null); xmlDoc = xmlhttp.responseXML.documentElement; return xmlDoc; }
结果chrome下突然报错:cannot read property documentElement of null
一般这个错误是没有根元素造成的,但检查了一下我xml里的确是有根元素的。看下生成的源代码,看到了id的引号变成了中文的引号,看看生成代码
$xml="<?xml version=\"1.0\" encoding=\"utf-8\"?>\r\n"; $xml.="<names>\r\n"; while($row = mysql_fetch_array($res)) { $xml.= "<name id=‘".$row[‘uid‘]."‘>".$row[‘cname‘]."</name>\r\n"; } $xml.= $tmp."</names>"
用的是单引号,但是chrome自己会讲转变为双引号,然后出错。
改一下就完事了。
$xml.= "<name id=\"".$row[‘uid‘]."\">".$row[‘cname‘]."</name>\r\n";