解析XML中的树形结构与DOM文档对象模型

所属分类: 网页制作 / XML/XSLT 阅读数: 1804
收藏 0 赞 0 分享

树结构
XML 文档始终是描述性的。树状结构通常被称为 XML 树,它在描述 XML 文档的过程中扮演一个重要的角色。

这个树结构包含根(父)元素,子元素等等。通过使用树状结构,我们可以了解源自根元素的所有后续分支和子分支。解析从根元素开始,然后向下移动到指向某个元素的第一个分支,从这里开始处理第一个分支及其子节点。

示例
下面的示例演示了简单的 XML 树结构:

XML/HTML Code复制内容到剪贴板
  1. <?xml version="1.0"?>  
  2. <Company>  
  3.     <Employee>  
  4.         <FirstName>Tanmay</FirstName>  
  5.         <LastName>Patil</LastName>  
  6.         <ContactNo>1234567890</ContactNo>  
  7.         <Email>tanmaypatil@xyz.com</Email>  
  8.         <Address>  
  9.             <City>Bangalore</City>  
  10.             <State>Karnataka</State>  
  11.             <Zip>560212</Zip>  
  12.         </Address>  
  13.     </Employee>  
  14. </Company>  

下面的树结构表示上面的 XML 文档:
2016215114941329.jpg (560×275)

图中,有一个叫做 <company> 的根元素。里面又有一个 <Employee> 元素。在雇员元素里面,又有 5 个分支,分别是 <FirstName>,<LastName>,<ContactNo>,<Email> 和 <Address>。在 <Address> 元素内,又有三个子分支,分别是 <City>,<State> 和 <Zip>。

DOM文档对象模型
文档对象模型(DOM)是 XML 的基础。XML 文档有一个信息层次结构单位,被称作节点;DOM 是描述这些节点和它们之间关系的一种方式。

DOM 文档就是一个节点集合或者按照层次结构组织的信息块。这个层次结构允许开发人员导航这个节点树来查询特定的信息。由于它基于信息层次结构,DOM 也被认为是_基于节点树_的。

另一方面,XML DOM 还提供了一个 API,允许开发者在节点树的任意位置添加,编辑,移动或者移除节点,以便创建应用程序。

示例
下面的示例(sample.htm)将一个 XML 文档("address.xml")解析为一个 XML DOM 对象,然后用 JavaScript 提取了一些信息:

XML/HTML Code复制内容到剪贴板
  1. <!DOCTYPE html>  
  2. <html>  
  3. <body>  
  4. <h1>TutorialsPoint DOM example </h1>  
  5. <div>  
  6. <b>Name:</b> <span id="name"></span><br>  
  7. <b>Company:</b> <span id="company"></span><br>  
  8. <b>Phone:</b> <span id="phone"></span>  
  9. </div>  
  10. <script>  
  11. if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari   
  12.     xmlhttp = new XMLHttpRequest();   
  13. } else {// code for IE6, IE5   
  14.     xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");   
  15. }   
  16.   
  17. xmlhttp.open("GET","/xml/address.xml",false);   
  18. xmlhttp.send();   
  19. xmlDoc=xmlhttp.responseXML;   
  20. document.getElementById("name").innerHTML=   
  21. xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;   
  22. document.getElementById("company").innerHTML=   
  23. xmlDoc.getElementsByTagName("company")[0].childNodes[0].nodeValue;   
  24. document.getElementById("phone").innerHTML=   
  25. xmlDoc.getElementsByTagName("phone")[0].childNodes[0].nodeValue;   
  26. </script>  
  27. </body  
  28. </html>  

address.xml 的内容如下:

XML/HTML Code复制内容到剪贴板
  1. <?xml version="1.0"?>  
  2. <contact-info>  
  3.     <name>Tanmay Patil</name>  
  4.     <company>TutorialsPoint</company>  
  5.     <phone>(011) 123-4567</phone>  
  6. </contact-info>  

我们可以把这两个文 sample.htm 和 address.xml 件保存到同一目录 /xml 中,然后通过在浏览器中打开的方式执行 sample.htm 文件。它应该生成如下所示结果:
2016215115103164.png (481×143)

这里,可以看到我们提取了每个子节点并显示了它们的值。

更多精彩内容其他人还在看

初学XML的基础知识(认识XML的作用)

“可扩展标记语言”(XML) 提供一种描述结构化数据的方法。与主要用于控制数据的显示和外观的 HTML 标记不同,XML 标记用于定义数据本身的结构和数据类型。 XML 使用一组标记来描绘数据元素。每个元素封装可能十分简单也可能十分复杂的数据。您可
收藏 0 赞 0 分享

使用XML实现多渠道接入网站的构架

  其实写这篇文章的目的最多的想法是把自己在去年在瑞士做项目时应用的一个框架给展现出来让大家共享,但我又有点担心我的表达能力不能将我在里面使用的思想很好的表现出来,所以迟迟 不敢下笔,最后还是下了决心,写吧, 不行就在好好改改,当然也希望大家多提些意见。
收藏 0 赞 0 分享

学习XML关于图像超链接的制作

这是我今天学习的时候遇到的另一个问题,做图像超链接要把链接地址放到<a>的href属性中去,可是这就是在标签中套标签,是不可以的,查了《Web编程实做教程》,才知道正确的解决方案,现在与大家分享。 此段代码运行需要两张图片:a.gif和b.gif。 my
收藏 0 赞 0 分享

Microsoft的XMLHTTP对象介绍

MSXML中提供了Microsoft.XMLHTTP对象,能够完成从数据包到Request对象的转换以及发送任务。 创建XMLHTTP对象的语句如下: Set objXML = CreateObject("Msxml2.XMLHTTP") 或 Set
收藏 0 赞 0 分享

了解WEB页面工具语言XML(六)展望

六、XML展望   任何一项新技术的产生都是有其需求背景的,XML的诞生是在HTML遇到不可克服的困难之后。近年来HTML在许多复杂的Web应用中遇到了问题,要彻底解决这些问题,必须用功能强大的XML来替代HTML作为Web页面的书写工具。XML有利于信息的表达和结构化组
收藏 0 赞 0 分享

了解WEB页面工具语言XML(五)好处

五、XML带来的好处   (1)更有意义的搜索   数据可被XML唯一的标识。没有XML,搜索软件必须了解每个数据库是如何构建的。这实际上是不可能的,因为每个数据库描述数据都是不同的。有了XML,书就可以很容易以标准的方式按照作者、标题、ISBN序号或其他的标准分
收藏 0 赞 0 分享

用XML将机器内码转换为人们容易理解的信息

  程序中通常会有一些错误代码或标识,为了程序中方便这些东西通常不会使用汉字,经常在程序中用的是一些FileError或数字。还有就是在编码中经常使用的枚举标识对象的状态。而通常这些信息会直接的或间接的现实给用户,可用户需要到的是容易理解的汉字描述。以前要么将这
收藏 0 赞 0 分享

历数Firefox2.0对XML处理的改进

Firefox 2.0 在对 XML 的支持方面有几个重要的改进。目前它的用户部署如日中天。了解 Firefox 2.0 XML 特性的改进,包括在 RSS Web 提要处理方面有争议的变化。 被赋予新应用程序平台的角色后,现在 Web 浏览器可能是最热门的软件。对于软件开
收藏 0 赞 0 分享

将XML数据转换成HTM

使用一个简单的XSL样式表就可以将XML数据转换成HTML。随着XML规范的不断演进,在新的版本中满足每个人的需要似乎已经成为必要;假设有一个表示一个页面内容的XML数据,现在想将其内容转换成布局。下面是想要转换的XML:
收藏 0 赞 0 分享

(javascript+asp)XML、XSL转换输出HTML

Javascript客户端转换 [code] <html> <body> <script language="javascript"> // Load XML var xml = new ActiveXObject
收藏 0 赞 0 分享
查看更多