返回首页
当前位置: 主页 > 编程语言 > XML教程 >

XML DOM-载入中

时间:2020-07-06 11:46来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥

在本章中,我们将研究XML 加载解析

为了描述API提供的接口,W3C使用一种称为接口定义语言(IDL)的抽象语言。使用IDL的优点是,开发人员可以学习如何将DOM与他或她喜欢的语言一起使用,并且可以轻松切换到其他语言。

缺点是,由于IDL是抽象的,因此Web开发人员不能直接使用IDL。由于编程语言之间的差异,它们需要在抽象接口与其具体语言之间进行映射或绑定。DOM已映射到Java,JScript,Java,C,C ++,PLSQL,Python和Perl等编程语言。

在以下各节和各章中,我们将使用Javascript作为编程语言来加载XML文件。

解析器

一个解析器是用来分析的文档,我们的情况下,XML文档中,做一些具体的与信息的软件应用程序。下表列出了一些基于DOM的解析器-

序号 解析器和说明
1个

JAXP

Sun Microsystem的XML解析Java API(JAXP)

2

XML4J

IBM的Java XML解析器(XML4J)

3

msxml

Microsoft的XML解析器(msxml)2.0版内置在Internet Explorer 5.5中

4

4DOM

4DOM是Python编程语言的解析器

5

XML :: DOM

XML :: DOM是一个Perl模块,用于使用Perl处理XML文档

6

Xerces

Apache的Xerces Java分析器

在诸如DOM之类的基于树的API中,解析器遍历XML文件并创建相应的DOM对象。然后,您可以来回遍历DOM结构。

加载和解析XML

加载XML文档时,XML内容可以有两种形式-

  • 直接作为XML文件
  • 作为XML字符串

内容为XML文件

以下示例演示了当XML内容作为XML文件接收时如何使用Ajax和Javascript 加载XML(node.xml)数据。在这里,Ajax函数获取xml文件的内容并将其存储在XML DOM中。创建DOM对象后,便会对其进行解析。

<!DOCTYPE html>
<html>
   <body>
      <div>
         <b>FirstName:</b> <span id = "FirstName"></span><br>
         <b>LastName:</b> <span id = "LastName"></span><br>
         <b>ContactNo:</b> <span id = "ContactNo"></span><br>
         <b>Email:</b> <span id = "Email"></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>

node.xml

<Company> 
   <Employee category = "Technical" id = "firstelement"> 
      <FirstName>Tanmay</FirstName> 
      <LastName>Patil</LastName> 
      <ContactNo>1234567890</ContactNo> 
      <Email>tanmaypatil@xyz.com</Email> 
   </Employee>  
   
   <Employee category = "Non-Technical"> 
      <FirstName>Taniya</FirstName> 
      <LastName>Mishra</LastName> 
      <ContactNo>1234667898</ContactNo> 
      <Email>taniyamishra@xyz.com</Email> 
   </Employee>  
   
   <Employee category = "Management"> 
      <FirstName>Tanisha</FirstName> 
      <LastName>Sharma</LastName> 
      <ContactNo>1234562350</ContactNo> 
      <Email>tanishasharma@xyz.com</Email> 
   </Employee> 
</Company> 

该代码的大多数细节都在脚本代码中。

  • Internet Explorer使用ActiveXObject(“ Microsoft.XMLHTTP”)创建XMLHttpRequest对象的实例,其他浏览器使用XMLHttpRequest()方法。

  • responseXML的直接在XML DOM把XML内容。

  • 将XML内容转换为JavaScript XML DOM后,您可以使用JS DOM方法和属性访问任何XML元素。我们使用了DOM属性,例如childNodesnodeValue和DOM方法,例如getElementsById(ID),getElementsByTagName(tags_name)。

执行

将此文件另存为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>

该代码的大多数细节都在脚本代码中。

  • Internet Explorer使用ActiveXObject(“ Microsoft.XMLDOM”)将XML数据加载到DOM对象中,其他浏览器使用DOMParser()函数和parseFromString(text,'text / xml')方法。

  • 可变文本应包含具有XML内容的字符串。

  • 将XML内容转换为JavaScript XML DOM后,您可以使用JS DOM方法和属性访问任何XML元素。我们使用了DOM属性,例如childNodesnodeValue

执行

将此文件另存为loadingexample.html,然后在浏览器中将其打开。您将看到以下输出-

载入范例

现在,我们了解了XML内容如何转换为JavaScript XML DOM,现在您可以使用XML DOM方法访问任何XML元素。

 上一页  打印页面
下一页  
 
 
------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • XML DOM-遍历

    在本章中,我们将讨论XML DOM遍历。 在 上一章 中,我们研究了 如何加载XML文档并解析...

  • XML DOM-载入中

    在本章中,我们将研究XML 加载 和 解析 。 为了描述API提供的接口,W3C使用一种称为接...

  • XML DOM-方法

    作为API的DOM包含表示可以在XML文档中找到的不同类型信息的接口,例如元素和文本。 这...

  • XML DOM-节点树

    在本章中,我们将研究XML DOM 节点树。 在XML文档中,信息以分层结构维护; 这种分层...

  • XML DOM-节点

    在本章中,我们将研究XML DOM 节点 。 每个XML DOM都以称为 节点的 层次结构单元包含...

  • XML DOM-概述

    所述 d ocument bject 中号 Odel等(DOM)是W3C标准。 它定义了访问诸如HTML和XML之类...

猜你感兴趣