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

   2016-03-06 0
核心提示:这篇文章主要介绍了XML中的树形结构与DOM文档对象模型,文中举了JavaScript解析DOM对象的例子,需要的朋友可以参考下

树结构
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 文档:
解析XML中的树形结构与DOM文档对象模型

图中,有一个叫做 <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 文件。它应该生成如下所示结果:
解析XML中的树形结构与DOM文档对象模型

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

 
标签: XML 树结构 dom
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • JavaScript的XMLHttpRequest对象
    ajax的核心技术是XMLHttpRequest对象,简称XHR。//支持IE7及更高的版本function createXML(){if(typeof XMLHttpReqquest!="undefined"){return new XMLHttpRequest();}else if(typeof ActiveXObject!="undefined"){if(typeof arguments.callee.activeXString!
    03-08
  • DOM,html,JavaScript,xml,CSS,浏览器之间的关系
    DOM,html,JavaScript,xml,CSS,浏览器之间
    DOM树解释:W3C所制订的DOM Level分为两大模块:Core和HTML。1.Core核心,W3C规范:满足软件开发者和Web脚本编写者,访问和操控产品项目中包含的可解析的HTML和XML内容。2.HTML模块,规范描述为:HTML之中特定元素的功能,和恰到好处的、易用的、针对常见性任
    03-08
  • 响应消息的内容类型 text/html; charset=utf-8
    问题表述:响应消息的内容类型 text/html; charset=utf-8 与绑定(application/soap+xml; charset=utf-8)的内容类型不匹配。 说明:此类问题当请求内容与响应消息内容不一致时发生。特别地,如果在站点错误描述中出现这个说明,一般代表站点后台自身的网络访
    03-08
  • jquery-easyui:格式化列 js格式化xml
    主框架页面: 在主界面区会加载西区菜单点击的URL内容. !DOCTYPE htmlhtmlheadmeta charset="UTF-8"/title主界面/titlediv th:include="/public/util::public"/div th:include="/public/util::jquery-easyui"/script type="text/javascript" th:src="(${@
    03-08
  • javascript读取XML
    2006-09-22 09:39 作者: 出处: 天极网   我的xml文件Login.xml如下.?xml version="1.0" encoding="utf-8" ?Login    Character        C Text="热血" Value="0"/C        C Text="弱气" Value="1"/C        C Text="
    03-08
  • XML与HTML的区别
    一、HTML       HTML(HyperTextMark-upLanguage)即超文本标记语言,是WWW的描述语言。  二、XML       XML即ExtentsibleMarkup Language(可扩展标记语言),是用来定义其它语言的一种元语言,其前身是SGML(标准通用标记语言)。它没有标签集(tagset),
    03-08
  • 一个xml转html的小程序 别人一个毕业设计【难度
    本来想5分钟写写发过去了。。发现机子上就一个vs2003 没办法用 1.1的来写一个吧。。每次都是从新google下。。这次也不例外。。奶奶的。。发现竟是2.0的代码。。无奈。自己摸索了下。。搞了10分钟写了点代码。。部分源码如下(最下面提供代码下载):---------
    03-08
  • 直接用mysql输出xml或html语句
    mysql -uroot -proot -Hc:/sql.sqlc:/data.html;mysql -uroot -proot -Xc:/sql.sqlc:/data.xml;在sql.sql中写入批处理命令,既可导出xml或html数据
    02-08
  • 微信小程序 - WXML语法与HTML比较
    上章我们看到一个小程序的page是由 .wxml  .wxss  .js  .json组成。wxml:相当于html,开发小程序的页面wxss:相当于css,小程序页面渲染样式js:实现小程序的动态方法等,包括该page的生命周期函数等json:用于小程序的配置如果你已经很熟练掌握Html,那
    02-08
  • 调用Web Service服务出现响应消息的内容类型tex
         错误信息:响应消息的内容类型 text/html; charset=utf-8 与绑定(text/xml; charset=utf-8)的内容类型不匹配。如果使用自定义编码器,请确保正确实现 IsContentTypeSupported 方法。    今天小姚给客户做远程的时候出现这问题,第一感觉应该是配
    02-08
点击排行