成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

大話HTML DOM與XML DOM的區別與聯系

開發 前端
隨著我們對Web開發的深入了解,能夠感覺到DOM是一個非常值得關注的點。為此,文章將詳細的介紹HTML DOM和XML DOM之間微妙的區別及內在的聯系。

本文內容的主題便是,為什么開發者要認為“DOM Level 1規范的架構”是至關重要的,其突出的重要性在哪里等等,以及還有HTML DOM和XML DOM之間微妙的區別及內在的聯系。

51CTO推薦閱讀:XML DOM新手入門指南

W3C所制訂的DOM Level分為兩大模塊:Core和HTML。第一個大模塊是Core核心,W3C規范是這樣描述Core的:滿足軟件開發者和Web腳本編寫者,訪問和操控產品項目中包含的可解析的HTML和XML內容。

第二個HTML模塊,規范描述為:HTML之中特定元素的功能,和恰到好處的、易用的、針對常見性任務的HTML文檔操作機制。

以上可見兩者的重要性。同時HTML模塊的意義也在于,解決了向后兼容的問題,這在當今符合DOM Level 1的瀏覽器中已經可以提供適應的解決方案。

按照這樣的說法,如果您仍然不能理解上述的要義,我們則可以這樣認為,HTML文檔可以使用Core API和HTML API兩者;而XML文檔只能使用Core API。換句話說,HTML與XML重疊的部分有Core API,而HTML API則是不能共享的部分,顧名思義限于HTML文檔所使用。這是我們認識Core/HTML的初步認識。

理解DOM Level 1 Core

理解DOM Level 1 Core之要義實質在于將Core看待成為許多節點(Nodes)而組成的文檔(Document),也就是說,此文檔結構中可允許存在著大量的條目項,其每一項都可理解為“節點”。討論該結構可以以兩個方面入手:一、一切皆是節點對象(Node Object,扁平化的角度去理解,flattened view,乃適合于多態下的接口);二、每個對象繼承于基類節點,實現了節點的接口(interface,OO繼承的角度去理解)。請觀察一下這段HTML:

  1. view plaincopy to clipboardprint?  
  2. <div id="myDiv">Hello World</div>    
  3. <div id="myDiv">Hello World</div>  

這是一個閉合的div標簽。從DOM Level 1的層面來分析可以有以下幾點內容:

◆標簽div可作為“節點對象Node Object(扁平化角度,前面已述)”,或者元素對象Element OBject(繼承的角度 - 元素繼承于Node)。

◆節點屬性id也可作為“節點對象Node Object(扁平化角度)”,或者屬性對象Attr. OBject(繼承的角度 - Attr繼承于Node)。

◆文本“Hello world”也可作為“節點對象Node Object(扁平化角度)”,字符串對象CharacterData對象(繼承的角度 - CharacterData繼承于Node),Text文本對象(繼承的角度 - Text繼承于CharacterData)。

稍微歸納一下,就是DOM 1 Core部分中一切皆是節點,節點以及其接口都可實現在每個對象身上(從繼承的角度理解出發),實現了節點接口才可以有節點的屬性、方法。——這是我們理解的前提。然后,根據特定的節點類型的不同,其接口的屬性和方法都是不同的,視乎DOM對該節點的設計而定。

理解DOM Level 1 HTML

我們日常工作的時候,跟HTML文檔打交道,其實就是屬于W3C所規定的DOM Level 1 HTML模塊內的處理工作。HTML DOM的特性和方法不是標準的DOM實現,是專門針對HTML同時也讓一些DOM操作變的更加簡便。HTML模塊集中表現在HTMLElement接口上,即為全體元素類型的對象所實現的接口。就該文討論的范圍而言,HTMLElement接口的參與形式與上述的 Node節點接口非常地相似。一旦引入了OO設計觀,只要實現了HTMLElement接口的對象,就可以定義它為元素了。一份HTML文檔有相當多的都是元素,當然還有,表示文檔本身的HTMLDocument和集合容器HTMLCollection等等。

因此,要準確理解DOM 1 HTML的模塊,必須認識其接口是基于元素的(Element-based),而不是基于節點的(Node-based)。那樣的話,元素方式與節點方式到底又有什么區別呢(Element v.s Node),應該如何界定兩者呢?例如節點屬性(properties of elements),當在“基于元素”的語境中,就是“屬性(attributes)”,并非獨立的節點對象。——盡管按照某個角度講,元素是節點的一種特例,我們仍可保留“節點”這一說法,一個標簽(tag)便是一個 “節點”。假如我們要得到id屬性的字符串的值是什么,采用DOM 1 Core的方式就是:

  1. view plaincopy to clipboardprint?  
  2. myElement.attributes["id"].value; // 從Node接口提供的屬性    
  3. myElement.attributes["id"].value; // 從Node接口提供的屬性  

等于下面的方法:

  1. view plaincopy to clipboardprint?  
  2. myElement.getAttributes("id"); // 從Element實現的方法返回    
  3. myElement.getAttributes("id"); // 從Element實現的方法返回  

但使用DOM 1 HTML方式的話,我們僅僅如此:

  1. view plaincopy to clipboardprint?  
  2. myElement.id;    
  3. myElement.id;  

這般就可以獲取id了。此時此刻,你可能會認為,XML文檔本身就不一定缺省有id的屬性,而因為有你所說的HTMLElement.id屬性預先定義在API中,當然HTML中的每個元素就有id的屬性啦——這里的意思沒有錯,也不妨礙我們的理解。的確全體的HTML元素均有id一項的屬性,不管HTMLDivElement\HTMLImageElement\……

Core or HTML Module?

既然這樣,那我應該使用Core的API,還是HTML模塊的API?對于HTML的文檔來說,用Core或HTML Moduel實際差別不大。本來我們一直都不太強調這種界定,以致忽略了它們細微的差異。如果我們覺得還是模棱兩可的話,我們可進一步查探它們的明細。個人認為處理XHTML并使用Core API這樣更能夠說明XHTML的“X”,即表明這份HTML就是一份標準的XML文檔,以便與原有HTML 4.1從語義上區別開來。但請記住,當處理一份XML結構的文檔的時候,自然而然就是采用Core去處理。通過XHMLHttpRequest請求執行后所返回的responseXML結果,只能使用Core的API去處理分析,就不能夠采用HTML的了。

小結

通過文本開發者應該明白到,HTML DOM與XML DOM之間,既有區別,又有聯系。一般而言,除了上述比較外,須值得一提的就是,HTML是可以允許不Well-Form的,XML就不行。

【編輯推薦】

  1. XML DOM新手入門指南
  2. 利用DOM解析XML文檔實例
  3. JavaScript DOM的本質及操作方法
責任編輯:王曉東 來源: CSDN博客
相關推薦

2010-09-28 10:24:50

HTML DOMXML DOM

2010-09-28 11:11:23

XML DOMHTML DOM

2011-12-28 10:57:37

2010-09-10 16:21:58

JavaScript

2013-06-14 10:45:15

NFVSDNOpenFlow

2009-02-10 09:23:03

DOM模型MSXML

2010-09-28 10:40:32

HTML DOM

2024-11-07 09:08:58

2010-09-28 10:03:15

DOM文檔對象模型

2013-06-08 13:29:27

Android開發DOM讀取XMLXML解析

2010-09-09 13:55:47

XML DOM

2010-09-09 13:40:19

XML DOM

2013-01-08 15:11:19

OpenStackKVM

2010-09-28 11:22:18

Html DOM樹

2011-07-26 10:46:04

HTML 5

2015-08-10 10:58:53

dompropertyattribute

2010-09-09 13:12:29

XML DOM

2010-09-28 11:32:30

HTML DOM是什么

2010-09-28 11:03:19

XML DOM

2013-03-21 15:27:09

LinuxUnix
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲精品免费视频 | 毛片免费看的 | 国产高清在线观看 | 日韩精品在线观看免费 | 亚洲一区三区在线观看 | 天天操天天插天天干 | 日韩成人在线网站 | 麻豆久久久久 | 成人午夜毛片 | 91看片网 | 偷拍自拍网址 | 日韩成人免费在线视频 | 国产黄色电影 | 日韩免费视频一区二区 | 久久久精品网站 | 69精品久久久久久 | 国产精品久久久久久久久久久久午夜片 | 欧美日韩亚洲国产 | 国产精品三级久久久久久电影 | 国产日韩欧美中文 | 日韩精品1区2区3区 国产精品国产成人国产三级 | 天堂网色| 久久国产综合 | 国产在线精品一区二区三区 | 欧美h视频| 成人精品福利 | 欧美乱操 | 国产精品久久久久久久岛一牛影视 | 91精品国产高清一区二区三区 | 久草新视频 | 99热激情 | 性色视频| 米奇狠狠鲁 | 成人精品在线观看 | 欧美综合国产精品久久丁香 | 欧美久久久久久久久 | 日韩成人免费视频 | 日韩精品在线一区 | 成人乱人乱一区二区三区软件 | 四虎影视一区二区 | 亚洲毛片在线观看 |