XML DOM完全参考手册(二)DOM节点
解析 XML DOM大多数浏览器都内建了供读取和操作 XML 的 XML 解析器。 解析器把 XML 转换为 JavaScript 可存取的对象。 解析 XML所有现代浏览器都内建了用于读取和操作 XML 的 XML 解析器。 解析器把 XML 读入内存,并把它转换为可被 JavaScript 访问的 XML DOM 对象。 微软的 XML 解析器与其他浏览器中的解析器是有差异的。微软的解析器支持对 XML 文件和 XML 字符串(文本)的加载,而其他浏览器使用单独的解析器。不过,所有的解析器都含有遍历 XML 树、访问、插入及删除节点的函数。 通过微软的 XML 解析器加载 XML微软的 XML 解析器内建于 Internet Explorer 5 及更高版本中。 下面的 JavaScript 片段把 XML 文档 ("books.xml") 载入了解析器: xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.load("books.xml"); 代码解释:
下面的 JavaScript 片段把名为 txt 的字符串载入解析器中:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(txt);注释:loadXML()方法用于加载字符串(文本),而load()用于加载文件。 在 Firefox 及其他浏览器中的 XML 解析器
下面的 JavaScript 片段把 XML 文档 ("books.xml") 载入了解析器:
<span style="background-color: rgb(249,249);">x</span><span style="background-color: rgb(255,255);">mlDoc=document.implementation.createDocument("","",null); xmlDoc.async="false"; xmlDoc.load("books.xml");</span> 代码解释:
下面的 JavaScript 片段把名为 txt 的字符串载入解析器中: <span style="background-color: rgb(255,255);">parser=new DOMParser(); xmlDoc=parser.parseFromString(txt,"text/xml");</span> 第一行创建一个空的 XML 文档对象注释:Internet Explorer 使用loadXML()方法来解析 XML 字符串,而其他浏览器使用DOMParser对象。 <span style="background-color: rgb(255,255);"><html> <body> <script type="text/javascript"> try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox,Mozilla,Opera,etc. { xmlDoc=document.implementation.createDocument("",null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load("books.xml"); document.write("xmlDoc is loaded,ready for use"); } catch(e) {alert(e.message)} </script> </body> </html></span> 解析 XML 字符串 - 一个跨浏览器的实例下面的代码加载并解析了一个 XML 字符串: <span style="background-color: rgb(255,255);"><html> <body> <script type="text/javascript"> text="<bookstore>" text=text+"<book>"; text=text+"<title>Harry Potter</title>"; text=text+"<author>J K. Rowling</author>"; text=text+"<year>2005</year>"; text=text+"</book>"; text=text+"</bookstore>"; try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async="false"; xmlDoc.loadXML(text); } catch(e) { try //Firefox,etc. { parser=new DOMParser(); xmlDoc=parser.parseFromString(text,"text/xml"); } catch(e) {alert(e.message)} } document.write("xmlDoc is loaded,ready for use"); </script> </body> </html></span> XML DOM 访问节点function loadXMLDoc(dname) { try //Internet Explorer { xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); } catch(e) { try //Firefox,null); } catch(e) {alert(e.message)} } try { xmlDoc.async=false; xmlDoc.load(dname); return(xmlDoc); } catch(e) {alert(e.message)} return(null); }一个通用的加载XML的方法; 访问节点您可以通过三种方法来访问节点:
xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title"); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); } 例子解释:
Node TypeXML 文档的documentElement属性是根节点。 节点的nodeName属性是节点的名称。 节点的nodeType属性是节点的类型。 遍历节点下面的代码循环根节点的子节点,同时也是元素节点: xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.documentElement.childNodes; for (i=0;i<x.length;i++) { if (x[i].nodeType==1) {//Process only element nodes (type 1) document.write(x[i].nodeName); document.write("<br />"); } } 通过使用books.xml" 载入 xmlDoc 中XML DOM 节点信息节点的属性在 XML 文档对象模型 (DOM) 中,每个节点都是一个对象。 对象拥有方法(功能)和属性(关于对象的信息),并可通过 JavaScript 进行访问和操作。 三个重要的 XML DOM 节点属性是:
nodeName 属性nodeName 属性规定节点的名称。
nodeValue 属性nodeValue 属性规定节点的值。
更改元素的值下面的代码更改第一个 <title> 元素的文本节点的值:xmlDoc=loadXMLDoc("books.xml"); x=xmlDoc.getElementsByTagName("title")[0].childNodes[0]; x.nodeValue="Easy Cooking"; 通过使用 loadXMLDoc() 把 "books.xml" 载入 xmlDoc 中nodeType 属性nodeType 属性规定节点的类型。 nodeType 是只读的。 最重要的节点类型是:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |