更新時間:2021-08-19 11:47:06 來源:動力節點 瀏覽1276次
XML 文檔對象模型 (DOM) 類是 XML 文檔的內存中表示形式。DOM 使您能夠以編程方式讀取、處理和修改 XML 文檔。XmlReader 類也讀取 XML,但它提供非緩存的只進、只讀訪問。這意味著使用 XmlReader 無法編輯屬性值或元素內容,也無法插入和移除節點。編輯是 DOM 的主要功能。XML 數據在內存中表示是常見的結構化方法,盡管實際的 XML 數據在文件中時或從另一個對象傳入時以線性方式存儲。以下是 XML 數據。
輸入
<?xml version="1.0"?>
<books>
<book>
<author>Carson</author>
<price format="dollar">31.95</price>
<pubdate>05/01/2001</pubdate>
</book>
<pubinfo>
<publisher>MSPress</publisher>
<state>WA</state>
</pubinfo>
</books>
在 XML 文檔結構中,此圖中的每個圓圈表示一個節點(稱為 XmlNode 對象)。XmlNode 對象是 DOM 樹中的基本對象。XmlDocument 類(擴展 XmlNode)支持用于對整個文檔執行操作(例如,將文檔加載到內存中或將 XML 保存到文件中)的方法。此外,XmlDocument 提供了查看和處理整個 XML 文檔中的節點的方法。XmlNode 和 XmlDocument 都具有性能和可用性增強,并通過方法和屬性執行下列操作:
訪問和修改 DOM 特定的節點,如元素節點、實體引用節點等。
除檢索節點包含的信息(如元素節點中的文本)外,還檢索整個節點。
注意
如果應用程序不需要 DOM 提供的結構或編輯功能,則 XmlReader 和 XmlWriter 類提供對 XML 的非緩存的只進流訪問。有關更多信息,請參見用 XmlReader 讀取 XML 和使用 XmlWriter 編寫 XML。
Node 對象具有一組方法和屬性以及基本的和定義完善的特性。其中的某些特性包括:
節點有單個父節點,父節點是與節點相鄰的上一級節點。唯一沒有父級的節點是文檔根,因為它是頂級節點,包含了文檔本身和文檔片段。
大多數節點可以有多個子節點,子節點是與節點相鄰的下一級節點。以下是可以有子節點的節點類型列表。
Document
DocumentFragment
EntityReference
Element
Attribute
XmlDeclaration、Notation、Entity、CDATASection、Text、Comment、ProcessingInstruction 和 DocumentType 節點沒有子節點。
處于同一級別、在關系圖中由 book 和 pubinfo 節點表示的節點是同輩。
DOM 的一個特性是處理屬性的方式。屬性是不屬于父子關系和同輩關系的節點。屬性被視為元素節點的屬性,由名稱和值對組成。例如,如果存在由與元素 price 關聯的 format="dollar" 組成的 XML 數據,則單詞 format 是名稱,format 屬性的值是 dollar。為檢索 price 節點的 format="dollar" 屬性,可以在游標位于 price 元素節點時調用 GetAttribute 方法。有關更多信息,請參見訪問 DOM 中的屬性。
將 XML 讀入內存時會創建節點。然而,并非所有節點都是同一類型。XML 中的元素具有不同于處理指令的規則和語法。因此,在讀取各種數據時,將為每個節點分配一種節點類型。此節點類型確定節點的特性和功能。
有關在內存中生成的節點類型的更多信息,請參見 XML 節點類型。有關在節點樹中創建的對象的更多信息,請參見將對象層次結構映射到 XML 數據。
Microsoft 擴展了萬維網聯合會 (W3C) DOM 級別 1 和級別 2 中可用的 API,使 XML 文檔的使用更容易。在完全支持 W3C 標準的同時,附加的類、方法和屬性增加了使用 W3C XML DOM 無法完成的功能。新類使您能夠訪問關系數據,為您提供與 ADO.NET 數據同步、同時將數據作為 XML 公開的方法。有關更多信息,請參見使 DataSet 與 XmlDataDocument 同步。
在將 XML 數據讀入內存,以更改其結構、添加或移除節點或者與在元素包含的文本中一樣修改節點所保存的數據時,DOM 最有用。不過,在其他方案中,還有其他比 DOM 更快的類。要對 XML 進行快速非緩存只進流訪問,請使用 XmlReader 和 XmlWriter。如果需要用游標模型和 XPath 進行隨機訪問,請使用 XPathNavigator 類。
以上就是動力節點小編介紹的"XML節點層次結構",希望對大家有幫助,想了解更多可查看Java在線學習。動力節點在線學習教程,針對沒有任何Java基礎的讀者學習,讓你從入門到精通,主要介紹了一些Java基礎的核心知識,讓同學們更好更方便的學習和了解Java編程,感興趣的同學可以關注一下。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習