XML DOM加载
上一页 下一页章
在本章中,我们将学习有关XML Loading和Parsing 。 正如概述章节中提到,XML DOM是语言和平台无关。
为了描述由API提供的接口,在W3C使用一个称为接口定义语言抽象语言(IDL) 使用IDL的好处是,开发人员学习如何使用DOM与他或她最喜欢的语言,可以轻松切换到不同的语言。
它的缺点是,因为它是抽象的,该IDL不能直接通过Web开发人员使用。 由于编程语言之间的差异,他们需要有一个映射 - 或结合 - 抽象接口及其具体语言之间。 DOM已被映射到编程语言,如JavaScript,JScript中,Java和C,C ++,PLSQL,巨蟒,和Perl。
在下面的章节,所有的章节中,我们将使用JavaScript作为我们的编程语言来加载XML文件。 分析器一个parser是用来分析的文档,我们的情况下,XML文档中,并做具体与信息东西的软件应用程序。 一些基于DOM解析器列于下表:
分析器 描述
JAXP Sun Microsystem的Java API来解析XML (JAXP)
XML4J IBM的XML解析器的Java (XML4J)
msxml 微软的XML解析器(msxml) 2.0版内置到Internet Explorer 5.5
4DOM 4DOM是Python编程语言解析器。
XML::DOM XML DOM ::是一个Perl模块来操作使用Perl的XML文档。
Xerces Apache的Xerces解析器的Java
在基于树的API,如DOM,解析器遍历XML文件,并创建相应的DOM对象。 然后你就可以遍历DOM结构来回。
加载和解析XML虽然加载XML文档,XML内容可以有两种形式:
直接作为XML文件
由于XML字符串
下面的例子演示了如何加载XML ( node.xml )当XML内容被接收为XML文件中使用Ajax和JavaScript的数据。 这里的Ajax功能,得到一个XML文件,并将其存储在XML DOM的内容。 一旦DOM对象创建它,然后解析。
<!DOCTYPE html> <html> <body> <div> <b>FirstName:</b> <span></span><br> <b>LastName:</b> <span></span><br> <b>ContactNo:</b> <span></span><br> <b>Email:</b> <span></span> </div> <script> //if browser supports XMLHttpRequest if (window.XMLHttpRequest) {// Create an instance of XMLHttpRequest object. code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp = new XMLHttpRequest(); } else {// code for IE6, IE5 xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // sets and sends the request for calling "node.xml" xmlhttp.open("GET","/dom/node.xml",false); xmlhttp.send(); // sets and returns the content as XML DOM xmlDoc=xmlhttp.responseXML; //parsing the DOM object document.getElementById("FirstName").innerHTML= xmlDoc.getElementsByTagName("FirstName")[0].childNodes[0].nodeValue; document.getElementById("LastName").innerHTML= xmlDoc.getElementsByTagName("LastName")[0].childNodes[0].nodeValue; document.getElementById("ContactNo").innerHTML= xmlDoc.getElementsByTagName("ContactNo")[0].childNodes[0].nodeValue; document.getElementById("Email").innerHTML= xmlDoc.getElementsByTagName("Email")[0].childNodes[0].nodeValue; </script> </body> </html>大部分的代码的细节都在脚本代码。
执行此文件另存为loadingexample.html并在浏览器中打开它,输出下面就可以看出:
内容XML字符串下面的例子演示了如何在XML内容被接收为XML文件加载使用Ajax和JavaScript XML数据。 这里的Ajax功能,得到一个XML文件,并将其存储在XML DOM的内容。 一旦DOM对象创建它,然后解析。
<!DOCTYPE html> <html> <head> <script> // loads the xml string in a dom object function loadXMLString(t) { // for non IE browsers if (window.DOMParser) { // create an instance for xml dom object parser=new DOMParser(); xmlDoc=parser.parseFromString(t,"text/xml"); } // code for IE else { // create an instance for xml dom object xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); xmlDoc.async=false; xmlDoc.loadXML(t); } return xmlDoc; } </script> </head> <body> <script> // a variable with the string var text="<Employee>"; text=text+"<FirstName>Tanmay</FirstName>"; text=text+"<LastName>Patil</LastName>"; text=text+"<ContactNo>1234567890</ContactNo>"; text=text+"<Email>tanmaypatil@xyz.com</Email>"; text=text+"</Employee>"; // calls the loadXMLString() with "text" function and store the xml dom in a variable var xmlDoc=loadXMLString(text); //parsing the DOM object y=xmlDoc.documentElement.childNodes; for (i=0;i<y.length;i++) { document.write(y[i].childNodes[0].nodeValue); document.write("<br>"); } </script> </body> </html>大部分的代码的细节都在脚本代码。
执行此文件另存为loadingexample.html并在浏览器中打开它,输出下面就可以看出:
现在我们看到的XML内容是如何转换为JavaScript XML DOM,您现在可以通过使用XML DOM方法访问任何XML元素。
上一页 下一页章
赞助商链接
2017 W3im.com. All Rights Reserved. Email: jacklee8902@gmail.com