大多数浏览器都有读取和操作 XML 的内建 XML 解析器。解析器(XML Parser)把 XML 转换为 JavaScript 可访问的对象。
XML DOM 把XML文档视为一种树结构。这种树结构被称为节点树。
可通过这棵树访问所有节点。可以修改或删除它们的内容,也可以创建新的元素。
这颗节点树展示了节点的集合,以及它们之间的联系。这棵树从根节点开始,然后在树的最低层级向文本节点长出枝条:
/*1. 第一步肯定是要创建一个操作xml文件的对象
可是IE和FF创建的方法不一样,所以要写个兼容IE和FF的
2. 加载XML文件
3. 获取或设置XML中的数据有如下方法
利用selectNodes或childNodes或
a. 对象.documentElement.childNodes.item(0) 根元素的直接子级第一个元素对象,依次累推......
获取是用text或getAttribute("属性名"),设置是用setAttribute("属性名",值)或text
b. 对象.documentElement.selectNodes("//根元素/直接子级1")或selectSingleNode
c. 对象.getElementsByTagName()
*/
创建一个操作xml文件的对象的方法
function createXMLObj(xmlPath){
if(window.ActiveXObject){ //在IE下
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load(xmlPath);
}else if(document.implementation && document.implementation.createDocument){ //在FF下
xmlDoc=document.implementation.createDocument("", "", null);
xmlDoc.load(xmlPath);
}else{
return null;
}
return xmlDoc;
}
获取数据的三种方法
//方法一
//document.writeln( xdoc.documentElement.childNodes.item(2).childNodes.item(0).getAttribute("title") );
//方法二
//document.writeln( xdoc.documentElement.selectNodes("//eyejs/options/options1").item(0).childNodes.item(0).text );
//document.writeln( xdoc.documentElement.selectNodes("//eyejs/options/options1").item(0).getAttribute("title") );
//document.writeln( xdoc.documentElement.selectNodes("//eyejs/options/options1").item(0).attributes(0).value );
//方法三
//document.writeln( xdoc.getElementsByTagName("options")[0].getAttribute("catename") );
//document.writeln( xdoc.getElementsByTagName("options")[0].attributes[0] );
在获取数据时,在FF下一定要用xdoc.οnlοad=function(){ }来获取
举例js代码
function createXMLObj(xmlPath){
if(window.ActiveXObject){ //在IE下
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load(xmlPath);
getValue(xmlDoc);
}else if(document.implementation && document.implementation.createDocument){ //在FF下
xmlDoc=document.implementation.createDocument("", "", null);
xmlDoc.load(xmlPath);
xmlDoc.οnlοad=function(){ getValue(xmlDoc); }
}else{
return null;
}
return xmlDoc;
}
function getValue(xmlDoc){
var arrTags=xmlDoc.getElementsByTagName("options1");
document.writeln( arrTags[0].getAttribute("title") );
}