源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
楼主: ttx9n

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

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2016-2-15 11:45:49 | 显示全部楼层 |阅读模式
这篇文章主要介绍了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 文档:

2016215114941329.jpg

2016215114941329.jpg

图中,有一个叫做 <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

2016215115103164.png

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

回复

使用道具 举报

1

主题

2万

回帖

319

积分

中级会员

Rank: 3Rank: 3

积分
319
发表于 2023-1-12 18:22:35 | 显示全部楼层
刷刷刷刷刷刷刷刷刷刷刷刷刷刷刷
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-1-15 00:51:03 | 显示全部楼层
很不错的源码论坛
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-8-22 18:45:24 | 显示全部楼层
激动人心,无法言表!
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

69

积分

注册会员

Rank: 2

积分
69
发表于 2023-8-26 03:47:42 | 显示全部楼层
感谢楼主分享
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

380

积分

中级会员

Rank: 3Rank: 3

积分
380
发表于 2023-8-30 08:11:01 | 显示全部楼层
源码源码源码源码源码源码源码源码源码源码源码源码源码
回复 支持 反对

使用道具 举报

1

主题

2万

回帖

319

积分

中级会员

Rank: 3Rank: 3

积分
319
发表于 2023-10-1 08:49:35 | 显示全部楼层
可以,看卡巴
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-3-2 06:23:50 | 显示全部楼层
收下来看看怎么样
回复 支持 反对

使用道具 举报

2

主题

2万

回帖

473

积分

中级会员

Rank: 3Rank: 3

积分
473
发表于 2024-6-2 05:46:55 | 显示全部楼层
还可以不错
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-8-4 06:40:53 | 显示全部楼层
哟哟哟哟哟以偶
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-23 18:28 , Processed in 0.078213 second(s), 28 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表