您的位置:首页 > Web前端 > JavaScript

JS操作Xml文件 (1)

2012-10-26 17:22 162 查看
其中的Xml文件Search.xml,它的内容如下:

<?xml version="1.0" encoding="utf-8" ?>

<WorkInfo>
<WorkInfoName>
<WorkId>1</WorkId>
<xml>newflow.xml</xml>
</WorkInfoName>
<WorkInfoName>
<WorkId>2</WorkId>
<xml>2.xml</xml>
</WorkInfoName>
<WorkInfoName>
<WorkId>3</WorkId>
<xml>3.xml</xml>
</WorkInfoName>
<WorkInfoName>
<WorkId>4</WorkId>
<xml>4.xml</xml>
</WorkInfoName>

</WorkInfo>

读取Xml文件中的某一个节点:

function ready()
{
// 加载xml文档
loadXML = function(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对象进行判断
checkXMLDocObj = function(xmlFile)
{
var xmlDoc = loadXML(xmlFile);
if(xmlDoc==null)
{

              alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');

}
return xmlDoc;
}

              // 然后开始获取需要的Login/Weapon/W的第一个节点的属性值

var xmlDoc = checkXMLDocObj('Search.xml');
var v = xmlDoc.getElementsByTagName('WorkInfo/WorkInfoName')[0].childNodes.item(1).text ;
alert (v);
}

用表格显示xml文件 遍历其中的任何一个节点:

function ParseXML(xmldoc)
{
var dv=document.getElementById('dvTB'),innerHTML='<table border="1"><tr align="center"><td>WorkId</td><td>xml</td></tr>',node
,employee=xmldoc.getElementsByTagName("WorkInfoName");//获取所有WorkInfoName标签
//遍历employee
for(var i=0;i<employee.length;i++){

node=employee[i].getElementsByTagName("WorkId")[0];//获取当前节点下的所有job节点,因为此节点下只有一个job,所以索引为0
node=node.firstChild;//注意文本节点也算一个节点,所以还得使用firstChild
innerHTML+='<tr><td>'+node.nodeValue+'</td>';//获取job节点内的内容
//同理获取该employee节点下的salary节点,上面为了说明,多分了几个步骤,下面就简化了
innerHTML+='<td>'+employee[i].getElementsByTagName("xml")[0].firstChild.nodeValue+'</td>';
innerHTML+='</tr>';//闭合tr
}
innerHTML+='</table>';//闭合table
//设置div的innerHTML属性
dv.innerHTML=innerHTML;

}
function loadXML(url)
{
var xmldoc;
if(document.implementation&&document.implementation.createDocument){
xmldoc=document.implementation.createDocument("","",null);
xmldoc.onload=function(){ParseXML(xmldoc);}
xmldoc.load(url);
}
else if(window.ActiveXObject){
xmldoc=new ActiveXObject("Microsoft.XMLDOM");
xmldoc.onreadystatechange=function(){if(xmldoc.readyState==4)ParseXML(xmldoc);}
xmldoc.load(url);
}
}

window.onload=function(){loadXML("search.xml");}

向xml中加入一个节点:

function aa()
{
// 加载xml文档
loadXML = function(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对象进行判断
checkXMLDocObj = function(xmlFile)
{
var xmlDoc = loadXML(xmlFile);
if(xmlDoc==null)
{

              alert('您的浏览器不支持xml文件读取,于是本页面禁止您的操作,推荐使用IE5.0以上可以解决此问题!');
}
return xmlDoc;
}

              // 然后开始获取需要的Login/Weapon/W的第一个节点的属性值

var xmlDoc = checkXMLDocObj('Search.xml');

var book = xmlDoc.createElement("book");
var category = xmlDoc.createAttribute("category");
category.nodeValue = "WEB";
book.setAttributeNode(category);

var title = xmlDoc.createElement("title");
var titleAtt = xmlDoc.createAttribute("lang");
titleAtt.nodeValue = "XML Dom";
title.setAttributeNode(titleAtt);
var titleTxt = xmlDoc.createTextNode("W3");
title.appendChild(titleTxt);

var author = xmlDoc.createElement("author");
var authorTxt = xmlDoc.createTextNode("W3School");
author.appendChild(authorTxt);

var year = xmlDoc.createElement("year");
var yearTxt =xmlDoc.createTextNode("2004");
year.appendChild(yearTxt);

var price = xmlDoc.createElement("price");
var priceTxt = xmlDoc.createTextNode("32");
price.appendChild(priceTxt);

book.appendChild(title);
book.appendChild(author);
book.appendChild(year);
book.appendChild(price);

var root = xmlDoc.documentElement;
root.appendChild(book);
document.write("<xmp>" + xmlDoc.xml + "</xmp>");

}

创建Xml文件:

function cc()
{
//创建方法一
var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
xmldoc.async = false;
xmldoc.load("temp1.xml");

var p=xmldoc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");//创建声明
xmldoc.appendChild(p);//添加声明

var root = xmldoc.createElement("students");
xmldoc.appendChild(root);
var book = xmldoc.createElement("book");
var category = xmldoc.createAttribute("category");
category.nodeValue = "WEB";
book.setAttributeNode(category);

var title = xmldoc.createElement("title");
var titleAtt = xmldoc.createAttribute("lang");
titleAtt.nodeValue = "XML Dom";
title.setAttributeNode(titleAtt);
var titleTxt = xmldoc.createTextNode("W3");
title.appendChild(titleTxt);

var author = xmldoc.createElement("author");
var authorTxt = xmldoc.createTextNode("W3School");
author.appendChild(authorTxt);

var year = xmldoc.createElement("year");
var yearTxt =xmldoc.createTextNode("2004");
year.appendChild(yearTxt);

var price = xmldoc.createElement("price");
var priceTxt = xmldoc.createTextNode("32");
price.appendChild(priceTxt);

book.appendChild(title);
book.appendChild(author);
book.appendChild(year);
book.appendChild(price);
root.appendChild(book);

//保存方法二
var fso=new ActiveXObject("Scripting.FileSystemObject");
var ts=fso.createTextFile("C:/temp2.xml",true);
ts.write(xmldoc.xml);
ts.close();

}

这个网址上也有比较多的介绍:http://www.w3school.com.cn/x.asp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: