广告位联系
返回顶部
分享到

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

xml/xslt 来源:互联网 作者:1讯站 发布时间:2018-04-16 19:30:05 人浏览
摘要

树结构 XML 文档始终是描述性的。树状结构通常被称为 XML 树,它在描述 XML 文档的过程中扮演一个重要的角色。 这个树结构包含根(父)元素,子元素等等。通过使用树状结构,我们可以了解源自根元素的所有后续分支和子分支。解析从根元素开始,然后向下移动

树结构

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

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

示例

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

<?xml version="1.0"?>  
<Company>  
    <Employee>  
        <FirstName>Tanmay</FirstName>  
        <LastName>Patil</LastName>  
       <ContactNo>1234567890</ContactNo>  
        <Email>tanmaypatil@xyz.com</Email>  
        <Address>  
           <City>Bangalore</City>  
            <State>Karnataka</State>  
            <Zip>560212</Zip>  
        </Address>  
    </Employee>  
</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 提取了一些信息:
 


    <!DOCTYPE html>  
    <html>  
    <body>  
    <h1>TutorialsPoint DOM example </h1>  
    <div>  
    <b>Name:</b> <span id="name"></span><br>  
    <b>Company:</b> <span id="company"></span><br>  
    <b>Phone:</b> <span id="phone"></span>  
    </div>  
    <script>  
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari   
        xmlhttp = new XMLHttpRequest();   
    } else {// code for IE6, IE5   
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");   
    }   
      
    xmlhttp.open("GET","/xml/address.xml",false);   
    xmlhttp.send();   
    xmlDoc=xmlhttp.responseXML;   
    document.getElementById("name").innerHTML=   
    xmlDoc.getElementsByTagName("name")[0].childNodes[0].nodeValue;   
    document.getElementById("company").innerHTML=   
    xmlDoc.getElementsByTagName("company")[0].childNodes[0].nodeValue;   
    document.getElementById("phone").innerHTML=   
    xmlDoc.getElementsByTagName("phone")[0].childNodes[0].nodeValue;   
    </script>  
    </body  
    </html>  

address.xml 的内容如下:

    <?xml version="1.0"?>  
    <contact-info>  
        <name>Tanmay Patil</name>  
        <company>TutorialsPoint</company>  
        <phone>(011) 123-4567</phone>  
    </contact-info>  


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

2016215115103164.png (481×143)


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


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • MIME类型中application/xml与text/xml的区别介绍
    RFC2376文档 定义了application/xml 和 text/xml 媒体类型。 RFC7303文档 也定义了application/xml 媒体类型。 RFC3023文档 一次定义了application/xml 和 text/x
  • Element UI里的autosize textarea设置高度方法
    把Element UI里的textarea input设置为autosize之后,文本框的默认高度为33,并不符合设计 默认样式 在浏览器中查检元素,发现 高度是由textarea的
  • 详解XML中的标签与元素的如何使用
    本篇文章给大家介绍XML中的标签与元素的如何使用 标签 我们来了解一下 XML 最重要的部分之一,XML 标签。XML 标签是 XML 的基
  • 解析XML中的DTD文档类型定义
    XML 文档类型定义,俗称 DTD,它是一种准确描述 XML 语言的方式。DTDs 根据适当 XML 语言的语法规则检查 XML 文档的词汇和结构的有效性。 XM
  • XML编程中的模式定义XSD的详解
    XML 模式通常被称为 XML 模式定义(XSD)。它被用来描述和验证 XML 数据的结构和内容。XML 模式定义元素,属性和数据类型。模式元素也支持
  • 解析XML中的树形结构与DOM文档对象模型
    树结构 XML 文档始终是描述性的。树状结构通常被称为 XML 树,它在描述 XML 文档的过程中扮演一个重要的角色。 这个树结构包含根(父)元
  • 简单了解XML中的命名空间
    命名空间就是一组唯一名称。命名空间是确定哪个元素和属性名可以被分配到某个组的一种机制。命名空间通过 URI(统一资源标示符)识别
  • 简介XML文档的阅读与编辑
    这篇文章主要介绍了XML文件的阅读与编辑,最常用的工具当然还是浏览器中的控制台与源代码查看,需要的朋友可以参考下 阅读器 以使用简单
  • 详解XML中的模式Schema

    详解XML中的模式Schema
    XML中拥有Schema特性,能够比DTD更加强大地引入元素结构,下面我们就来详解XML中的模式Schema的概念及作用和用法,需要的朋友可以参考下 文档定
  • 淘宝开了个引流通道 15秒抖出电商爆款
    不知最近大家有没有被海底捞的抖音吃法刷屏,魔性的音乐节奏、风骚的DIY操作,让抖音一时间变成了舌尖上的抖音。 不知最近派友们有没
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计