问题说明:
刚刚学习DOM解析XML,现在想做个查询的功能,根据日期来查询同一节点中的另外一个节点的值。请大侠们指点一二,我对遍历节点和找节点弄不好。感谢!!JS代码:
var curNode;
var xmlDoc = new ActiveXObject( "Msxml2.DOMDocument" );
xmlDoc.async = false;
xmlDoc.load("daily.xml");
if (xmlDoc.parseError.errorCode != 0) {
var myErr = xmlDoc.parseError;
document.write("You have error " + myErr.reason);
}
else
{ curNode = xmlDoc.documentElement.childNodes;
// for(var i=0;i<curNode.childNodes.length;i++)
// {
// //document.getElementById("test").innerHTML="hahaha"
// for(var j=0;j<curNode.childNodes[i].length;j++){
// var tagdate = curNode.childNodes[i].Value;
// if(tagdate=="2009.9.9"){
// alert("right");
// }
// }
// }
return true;
}XML文件:
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<daily id='1'>
<date>2009.09.08</date>
<title>title1</title>
<cont>cont4</cont>
</daily>
<daily id='2'>
<date>2009.09.09</date>
<title>title2</title>
<cont>cont2</cont>
</daily>
</ROOT>
刚刚学习DOM解析XML,现在想做个查询的功能,根据日期来查询同一节点中的另外一个节点的值。请大侠们指点一二,我对遍历节点和找节点弄不好。感谢!!JS代码:
var curNode;
var xmlDoc = new ActiveXObject( "Msxml2.DOMDocument" );
xmlDoc.async = false;
xmlDoc.load("daily.xml");
if (xmlDoc.parseError.errorCode != 0) {
var myErr = xmlDoc.parseError;
document.write("You have error " + myErr.reason);
}
else
{ curNode = xmlDoc.documentElement.childNodes;
// for(var i=0;i<curNode.childNodes.length;i++)
// {
// //document.getElementById("test").innerHTML="hahaha"
// for(var j=0;j<curNode.childNodes[i].length;j++){
// var tagdate = curNode.childNodes[i].Value;
// if(tagdate=="2009.9.9"){
// alert("right");
// }
// }
// }
return true;
}XML文件:
<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<daily id='1'>
<date>2009.09.08</date>
<title>title1</title>
<cont>cont4</cont>
</daily>
<daily id='2'>
<date>2009.09.09</date>
<title>title2</title>
<cont>cont2</cont>
</daily>
</ROOT>
解决方案 »
- masonry+infinitescrol 插件来实现瀑布流布局产生的问题。。。。。
- 如果在超链接<a ..></a>中加js事件,定焦点!
- javascript fso问题。
- 一个js,onchange不能触发的问题
- 为什么预读的gif图像显示出来后是静止的?
- 超级奇怪jquery ajax问题,IE8-以下时正常时不正常。FF,CH下正常。
- 联级下拉选择框IE5不能实现,求救。
- 如何让web页面重新刷新一下啊? 就好比F5的作用一样啊
- 求救!!很急!欢迎高手帮我看看!
- 按F1时如何不让IE的帮助文件弹出来?
- jquery 的contextMenu插件是否能修改成左键单击?
- 首页面是一个frameset框架下面有3个子页面,目地是在首页面屏蔽F1-F12键
XML为XML格式数据
$(XML).find("ROOT").find("daily").each(function(i){
//这里可以遍历出所有daily数据;
alert($(this).find("date"));
});
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title> </title>
<style> </style>
<script>
var xmlReportData=null
function XMLload(){
xmlReportData = new ActiveXObject("Microsoft.XMLDOM");
xmlReportData.async = "false";
xmlReportData.onreadystatechange = function(){
if ( xmlReportData.readyState != 4){
return;
}else{
var node=findNodeValue(xmlReportData.documentElement,"2009.09.09"); //在这里设置你的时间
for(var i=0;i<node.childNodes.length;i++){
alert(node.childNodes[i].text);
}
}
};
xmlReportData.load( "test.xml" );
}
function findNodeValue(pnode,date){
var node;
var snode;
for(var i=0;i<pnode.childNodes.length;i++){
node=pnode.childNodes[i];
if(node.nodeName=="daily"){
for(var j=0;j<node.childNodes.length;j++){
snode=node.childNodes[j];
if(snode.nodeName=="date"){
if(snode.text==date)
return node;
}
}
}
}
}
window.onload=function(){
XMLload();
}
</script>
</head>
<body> </body>
</html>
test.xml<?xml version="1.0" encoding="utf-8"?>
<ROOT>
<daily id='1'>
<date>2009.09.08 </date>
<title>title1 </title>
<cont>cont4 </cont>
</daily>
<daily id='2'>
<date>2009.09.09 </date>
<title>title2 </title>
<cont>cont2 </cont>
</daily>
</ROOT>
x = xmlDoc .getElementsByTagName("title")[0].childNodes[0];
x.nodeValue="Easy Cooking";改变属性的值xmlDoc = loadXMLDoc("books.xml");
x = xmlDoc .getElementsByTagName("book");
x[0].setAttribute("category","food");删除元素节点xmlDoc = loadXMLDoc("books.xml");
y = xmlDoc.getElementsByTagName("books")[0];
xmlDoc.documentElement.removeChild(y);删除自身xmlDoc = loadXMLDoc("books.xml");
x = xmlDoc.getElementsByTagName("book")[0];
x.parentNode.removeChild(x);删除文本节点xmlDoc = loadXMLDoc("books.xml");
x = xmlDoc.getElementsByTagName("title")[0];
y = x.childNodes[0];
x.removeChild(y);清空文本节点xmlDoc = loadXMLDoc("books.xml");
x = xmlDoc.getElementsByTagName("title")[0];
x.nodeValue = "";根据名称删除属性节点xmlDoc = loadXMLDoc("books.xml");
x = xmlDoc.getElementsByTagName("book");
x[0].removeAttribute(category);根据对象删除属性节点xmlDoc = loadXMLDoc("books.xml");
x = xmlDoc.getElementsByTagName("book");
for(var i=0;i<x.length;i++){
while(x[i].attributes.length>0){
attnode=x[i].attributes[0];
old_att=x[i].removeAttribtueNode(attnode);
}
}
x[0].removeAttribute(category);
BeenZ 很强大 循环输出了那几个节点的值 谢谢