求助,关于xml的问题

wudichaoren2010 2015-05-30 04:13:58


<?xml version="1.0" encoding="utf-8"?>
<students>
<stu>
<id>a1</id>
<name>赵</name>
<c>75</c>
</stu>

<stu>
<id>a2</id>
<name>钱</name>
<c>90</c>
</stu>

<stu>
<id>a3</id>
<name>孙</name>
<c>87</c>
</stu>

<stu>
<id>a4</id>
<name>李</name>
<c>66</c>
</stu>

<stu>
<id>a5</id>
<name>周</name>
<c>31</c>
</stu>

<stu>
<id>a6</id>
<name>吴</name>
<c>78</c>
</stu>
</students>








<!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>LJ读取</title>
<script type="text/javascript">
function loadXMLDoc(dname) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
}
else {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET", dname, false);
xhttp.send("");
return xhttp.responseXML;
}
function ReadXml() {
alert("ks");
var xmldoc = loadXMLDoc("score.xml");
//获得指定节点
var divmsg = document.getElementById("xmlMsg");
var msg = "<table border='1' id='mytable'><tr><th>姓名</th><th>性别</th><th>年龄</th><tr>";
var nodes = xmldoc.getElementsByTagName("stu");
alert(nodes[0].childNodes[0].firstChild.nodeValue);
for (var i = 0; i < nodes.length; i++) {
msg += "<tr>";

msg += "<td>" + nodes[0].childNodes[0].firstChild.nodeValue + "</td>";
//msg += "<td>" + nodes[i].getElementsByTagName("id")[0].firstChild.nodeValue + "</td>";
//msg += "<td>" + nodes[i].getElementsByTagName("name")[0].firstChild.nodeValue + "</td>";
// msg += "<td>" + nodes[i].getElementsByTagName("c")[0].firstChild.nodeValue + "</td>";
msg += "</tr>";
}
msg += "</table>";
divmsg.innerHTML = msg;
}
</script>
</head>


<body>
<form id="form1" runat="server">
<div>
<input type="button" value="JS读取XML" onclick="ReadXml()" /><br />
<div id="xmlMsg">
</div>
</div>
</form>
</body>



</html>






alert(nodes[0].childNodes[0].firstChild.nodeValue);为什么这句无法获取值?







// 加载xml文档
var loadXML = function (xmlFile) {
var xmlDoc;
if (window.ActiveXObject) {
xmlDoc = new ActiveXObject('Microsoft.XMLDOM');//IE浏览器
xmlDoc.async = false;
xmlDoc.load(xmlFile);
}
else if (isFirefox=navigator.userAgent.indexOf("Firefox")>0) { //火狐浏览器
//else if (document.implementation && document.implementation.createDocument) {//这里主要是对谷歌浏览器进行处理
xmlDoc = document.implementation.createDocument('', '', null);
xmlDoc.load(xmlFile);
}
else{ //谷歌浏览器
var xmlhttp = new window.XMLHttpRequest();
xmlhttp.open("GET",xmlFile,false);
xmlhttp.send(null);
if(xmlhttp.readyState == 4){
xmlDoc = xmlhttp.responseXML.documentElement;
}
}
return xmlDoc;
}
// 首先对xml对象进行判断
var checkXMLDocObj = function (xmlFile) {
var xmlDoc = loadXML(xmlFile);
if (xmlDoc == null) {
alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
window.location.href = '../err.html';
}
return xmlDoc;
}




document.implementation && document.implementation.createDocument是什么意思?
...全文
574 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxian2015 2015-06-28
  • 打赏
  • 举报
回复


<!DOCTYPE html>
<html>
<body>

<p>点击下面的按钮来显示今天是周几:</p>

<button onclick="myFunction()">点击这里</button>

<p id="demo"></p>

<script>
function myFunction()
{
var x;
var d=new Date().getDay();
switch (d)
  {
  case 0:
    x="Today it's Sunday";
    break;
  case 1:
    x="Today it's Monday";
    break;
  case 2:
    x="Today it's Tuesday";
    break;
  case 3:
    x="Today it's Wednesday";
    break;
  case 4:
    x="Today it's Thursday";
    break;
  case 5:
    x="Today it's Friday";
    break;
  case 6:
    x="Today it's Saturday";
    break;
  }
document.getElementById("demo").innerHTML=x;
}
</script>

</body>
</html>

wudichaoren2010 2015-06-27
  • 打赏
  • 举报
回复
求助啊
wudichaoren2010 2015-06-21
  • 打赏
  • 举报
回复
求助
wudichaoren2010 2015-06-14
  • 打赏
  • 举报
回复
引用 7 楼 danica7773 的回复:

var childs,  child,  type;
for (var i = 0; i < nodes.length; i++) {
    msg += "<tr>";
    childs = nodes[i].childNodes;
    for(var j = 0; j < childs.length; j++) {
        child = childs[j];
        type = child.nodeName.toLowerCase();
        if(type != '#text') {
            msg += "<td>" + child.firstChild.nodeValue + "</td>";
        }
    }
    msg += "</tr>";
}
还是不好使


<!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>LJ读取</title>
    <script type="text/javascript">
        function loadXMLDoc(dname) {
            if (window.XMLHttpRequest) {
                xhttp = new XMLHttpRequest();
            }
            else {
                xhttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            xhttp.open("GET", dname, false);
            xhttp.send("");
            return xhttp.responseXML;
        }
        function ReadXml() {
			alert("ks");
            var xmldoc = loadXMLDoc("score.xml");
            //获得指定节点
            var divmsg = document.getElementById("xmlMsg");
            var msg = "<table border='1' id='mytable'><tr><th>姓名</th><th>性别</th><th>年龄</th><tr>";
			
			
			/*
			nodes[0].childNodes[0].firstChild.nodeValue取不到值,往往是因为父元素的第一个子元素前面有回车换行或空格等
			
			在xml里面,文本是textNode也是属于parent.childNodes

			document.implementation是支持w3c DOM标准的浏览器才有的DOM对象,用于操作文档对象模型
			*/
			
			
			
            var nodes = xmldoc.getElementsByTagName("stu");
			alert(nodes[0].childNodes[0].firstChild.nodeValue);
			
			
			
var childs,  child,  type;
for (var i = 0; i < nodes.length; i++) {
    msg += "<tr>";
    childs = nodes[i].childNodes;
    for(var j = 0; j < childs.length; j++) {
        child = childs[j];
        type = child.nodeName.toLowerCase();
        if(type != '#text') {
            msg += "<td>" + child.firstChild.nodeValue + "</td>";
        }
    }
    msg += "</tr>";
}

			
			
			/*
			
			错误写法
            for (var i = 0; i < nodes.length; i++) {
                msg += "<tr>";
				
				msg += "<td>" + nodes[0].childNodes[0].firstChild.nodeValue + "</td>";
                //msg += "<td>" + nodes[i].getElementsByTagName("id")[0].firstChild.nodeValue + "</td>";
                //msg += "<td>" + nodes[i].getElementsByTagName("name")[0].firstChild.nodeValue + "</td>";
               // msg += "<td>" + nodes[i].getElementsByTagName("c")[0].firstChild.nodeValue + "</td>";
                msg += "</tr>";
            }
			
			*/
            msg += "</table>";
            divmsg.innerHTML = msg;
        }
    </script>
</head>


<body>
    <form id="form1" runat="server">
    <div>
        <input type="button" value="JS读取XML" onclick="ReadXml()" /><br />
        <div id="xmlMsg">
        </div>
    </div>
    </form>
</body>



</html>






打字员 2015-06-09
  • 打赏
  • 举报
回复

var childs,  child,  type;
for (var i = 0; i < nodes.length; i++) {
    msg += "<tr>";
    childs = nodes[i].childNodes;
    for(var j = 0; j < childs.length; j++) {
        child = childs[j];
        type = child.nodeName.toLowerCase();
        if(type != '#text') {
            msg += "<td>" + child.firstChild.nodeValue + "</td>";
        }
    }
    msg += "</tr>";
}
wudichaoren2010 2015-06-09
  • 打赏
  • 举报
回复
引用 5 楼 danica7773 的回复:
nodes[0].childNodes[0].firstChild.nodeValue取不到值,往往是因为父元素的第一个子元素前面有回车换行或空格等 在xml里面,文本是textNode,也是属于parent.childNodes document.implementation是支持w3c DOM标准的浏览器才有的DOM对象,用于操作文档对象模型
nodes[0].childNodes[0].firstChild.nodeValue取不到值,往往是因为父元素的第一个子元素前面有回车换行或空格等 在xml里面,文本是textNode,也是属于parent.childNodes 这个怎么改能取到值?
打字员 2015-06-03
  • 打赏
  • 举报
回复
nodes[0].childNodes[0].firstChild.nodeValue取不到值,往往是因为父元素的第一个子元素前面有回车换行或空格等 在xml里面,文本是textNode,也是属于parent.childNodes document.implementation是支持w3c DOM标准的浏览器才有的DOM对象,用于操作文档对象模型
wudichaoren2010 2015-06-02
  • 打赏
  • 举报
回复
求助啊
wudichaoren2010 2015-06-02
  • 打赏
  • 举报
回复
求助啊
wudichaoren2010 2015-05-30
  • 打赏
  • 举报
回复
引用 1 楼 slwsss 的回复:
http://www.cnblogs.com/huacw/archive/2011/03/24/1994074.html
不想用JQ

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧