现有XML如下。。
<?xml version="1.0" encoding="gb2312" ?>
<LeavWord>
<Note>
<name>sky</name>
<content>就大方过的</content>
<time>1990/02/11</time>
</Note>
<Note>
<name>sky1</name>
<content>就大方过的1</content>
<time>1990/02/12</time>
</Note>
</LeavWord>
代码如下。。
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.async=false;
xmlDoc.load(xmlFile);
} else{
alert('Your browser cannot handle this script');
}
return xmlDoc;
}
function _sd_Post() {
var xmlDoc=new loadXML("w.xml");
var a=xmlDoc.getElementsByTagName('Note');//文件加载成功!
alert(a.length);
}
为什么这个长度是0呢?而不是2,然后我想得到name节点下的sky,如何操作?谢谢了!
<?xml version="1.0" encoding="gb2312" ?>
<LeavWord>
<Note>
<name>sky</name>
<content>就大方过的</content>
<time>1990/02/11</time>
</Note>
<Note>
<name>sky1</name>
<content>就大方过的1</content>
<time>1990/02/12</time>
</Note>
</LeavWord>
代码如下。。
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.async=false;
xmlDoc.load(xmlFile);
} else{
alert('Your browser cannot handle this script');
}
return xmlDoc;
}
function _sd_Post() {
var xmlDoc=new loadXML("w.xml");
var a=xmlDoc.getElementsByTagName('Note');//文件加载成功!
alert(a.length);
}
为什么这个长度是0呢?而不是2,然后我想得到name节点下的sky,如何操作?谢谢了!
var xmlDoc=new loadXML("w.xml");
var a=xmlDoc.getElementsByTagName('LeavWord');//文件加载成功!
alert(a.length);
}
你跨越了一级
a的长度是2,我在firefox下和ie下都测试过了
我改成utf-8后依然是0,咋回事了。。我去看看我IE版本。
那我把测试的文件发给你看下吧,我就只改了个编码:<?xml version="1.0" encoding="utf-8" ?>
<LeavWord>
<Note>
<name>sky</name>
<content>就大方过的</content>
<time>1990/02/11</time>
</Note>
<Note>
<name>sky1</name>
<content>就大方过的1</content>
<time>1990/02/12</time>
</Note>
</LeavWord><!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 type="text/javascript">
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.async=false;
xmlDoc.load(xmlFile);
} else{
alert('Your browser cannot handle this script');
}
return xmlDoc;
}
function _sd_Post() {
var xmlDoc=new loadXML("w.xml");
//alert(String(xmlDoc.xml));
var a=xmlDoc.getElementsByTagName('Note');//文件加载成功!
alert(a.length);
}</script>
</head><body>
<input type="button" value="test" onclick="_sd_Post();" />
</body>
</html>
<script type="text/javascript">
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.async=false;
xmlDoc.load(xmlFile);
} else{
alert('Your browser cannot handle this script');
}
return xmlDoc;
}
function _sd_Post() {
var xmlDoc=new loadXML("w.xml");
var a=xmlDoc.getElementsByTagName('Note');//文件加载成功!
var ss=a[0].getElementsByTagName("name")[0].firstChild.data;
alert(a.length);
alert(ss);
}</script>
</head><body>
<input type="button" onclick="_sd_Post();" />
</body>
把你的html和xml放在一起,firefox和IE我都试过了,可以用的
alert(a.length); 提示2
alert(ss); 提示sky
你html和xml是放一起的吗?你用alert测试下看到哪步出错了啊?