DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> XML學習教程 >> XML詳解 >> XML初學進階學習筆記(4)
XML初學進階學習筆記(4)
編輯:XML詳解     

 32、實現了NamedNodeMap接口的對象中包含了可以通過名字來訪問的一組節點的集合。

  不過注意,NamedNodeMap並不是從NodeList繼承過來的,它所包含的節點集中的節點是無序的。盡管這些節點也可以通過索引來進行訪問,但這只是提供了枚舉NamedNodeMap中所包含節點的一種簡單方法,並不表明在DOM規范中為NamedNodeMap中的節點規定了一種排列順序。

  NamedNodeMap表示的是一組節點和其唯一名字的一一對應關系,這個接口主要用在屬性節點的表示上。與NodeList相同,在DOM中,NamedNodeMap對象也是"live"的。

  33、利用DOM,程序開發人員可以動態地創建文檔,遍歷文檔結構,添加、修改、刪除文檔內容等等。

  我們將通過微軟的XML分析器msXML,對DOM接口的這些應用做的介紹。

  使用不同的編程語言創建Document對象的范例。

  JScript:

  var doc = new ActiveXObject("Microsoft.XMLDOM") 

  VB Script:

  Dim docSet doc = CreateObject("Microsoft.XMLDOM")

  VB:

  Dim doc As ObjectSet 

  doc = CreateObject("Microsoft.XMLDOM")

  或者

  Dim doc As DOMDocumentSet doc = New DOMDocument

  VC:

  HRESULT hr = CoCreateInstance

  (CLSID_DOMDocument,NULL,CLSCTX_INPROC_SERVER,IID_IXMLDocument(LPVOID*),&m_pXMLDocument);

  34、Document的加載

  不同的XML分析器所提供的加載XML文檔的方法也不盡相同。

  在微軟的msxml中,提供了一個load方法來加載XML文檔,建立DOM樹同XML文檔之間的關聯。

  依舊以聯系人列表信息的XML文檔.XML為例,可通過下述方式來加載文檔:

  Dim myDocumentSet myDocument = CreateObject("microsoft.XMLdom")

  myDocument.async = FalsemyDocument.load("clIEnt.XML") 

  35、對DOM樹的操作::

  首先,我們要獲取XML文檔的根元素節點,用VBScript語言描述這個操作如下:

  root = myDocument.documentElement 

  該語句的實際含義如下圖黃色箭頭所示。

  在得到了文檔的根元素節點之後,我們又將如何訪問其他元素呢?以文檔中的第二個person元素為例,

  對該元素節點以及其子節點的訪問可以通過下面的方式來實現:

  personNode = root.childNodes.item(1)

  nameNode = personNode.childNodes.item(0)

  textNode = nameNode.childNodes.item(0)

  theName = textNode.nodevalue 

  上述訪問語句執行後,theName的值是"李四"。下圖黃色箭頭給出了這一訪問過程的示意:

  在上面的代碼中,root是文檔的根元素節點addressbook節點,personNode和nameNode都是元素類型的節點,textNode是TEXT類型的節點,theName是一個字符串。

  childNodes是NodeList類型的屬性,item是NodeList接口中Node類型的屬性,通過item可以訪問NodeList節點集合中的任意節點(這兒有一點需要注意,當我們要訪問根元素節點addressbook的第二個person子節點personNode時,

  我們用的索引參數是"1",這是因為item中的索引參數是從0開始的,如果我們要訪問節點集合中的第一個節點,則應該用item(0)來表示)。

  在DOM規范中,要訪問元素節點的文本內容,需要先得到元素節點的TEXT子節點,再通過TEXT節點的屬性獲取文本內容。微軟在實現DOM接口時對DOM進行了部分擴展,可以通過元素類型節點的text屬性直接獲得元素中的文本內容。具體實用說明可以參考微軟msdn中的幫助。

  上面的例子給出了如何訪問DOM樹中的元素節點,

  對於DOM樹中的屬性節點,訪問方法略有不同,可以通過下面的語句來實現:

  attr = node.attributes.getNamedItem("sex")

  attrContent = attr.nodevalue 

  上述訪問語句執行後,attrContent的值是"male"。下圖用黃色箭頭標出了這一訪問的過程。

  在上面的代碼中,attr是屬性類型的節點,attributes是NamedNodeMap類型的屬性,getNamedItem是NamedNodeMap接口中的方法。屬性的內容可以通過屬性節點的nodevalue來獲得。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved