xml基本概念
1.xml基本概念:?
<?xml version='1.0' encoding="GB2312"?> ??????? //XML文檔聲明,放在xml文檔的第一行????
<!-- This file represents a fragment of a book store inventory database --> ?//xml注釋
<bookstore>???????????????????? //根元素,即緊接著文檔聲明后建立的第一個元素
?<book genre="autobiography" publicationdate="1991" ISBN="1-861003-11-0">?//根元素的子元素
????? <title>The Autobiography of Benjamin Franklin</title>
??? <author>
????? <first-name>Benjamin</first-name>????? //成對出現的標簽(tag),表示一個元素(element)
????? <last-name>Franklin</last-name>
??? </author>
??? <price>8.99</price>
?</book>
?<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">?//每個元素可以有多個屬性
??? <title>The Confidence Man</title>??????????????????? //即genre是book元素的屬性
??? <author>???????????????????????????????? //genre是屬性名,novel是屬性值
????? <first-name>Herman</first-name>??????? //first-name元素的內容(content)是Herman
????? <last-name>Melville</last-name>??????? //元素的內容可以稱為數據、值
??? </author>
??? <price>11.99</price>???? //book元素包含了title、author、price三個子元素
?</book>?????????????? //book元素還有genre、publicationdate、ISBN三個屬性
</bookstore>
?
注:
一個元素(element)可以有屬性(attribute)和內容(content),也可以沒有屬性或內容
一個元素可以有子元素,也可以沒有子元素
?
?
2.xml訪問模型
xml文件的訪問模型有2種:DOM(文檔對象模型) 和流模型。
1)DOM模型:
優點:允許編輯和更新xml文件,可以隨機訪問文檔中的數據,可以使用XPath查詢(類似于SQL之于數據庫)
缺點:需要一次性加載整個文檔到內存中,對于較大的文檔,會造成資源浪費
?
2)流模型:
流模型訪問xml文檔,使用流的概念,每次迭代xml文檔中的一個節點,適于處理較大的文檔,消耗內存較少。
缺點:它是只讀的,僅向前的,不能在文檔中執行向后導航操作。
流模型有2種變體:
"推"模型:即使SAX,是一種事件驅動模型。它每發現一個節點就引發一個事件,程序員必須編寫事件的處理程序
??? ?? 不靈活,也很麻煩
"拉"模型:就是在遍歷文檔時把感興趣的文檔部分從讀取器中拉出,不引發事件,效率更高
???????? .net使用的是基于"拉"模型的實現方案
?
3).net既支持流模型?- XmlTextReader類和XmlTextWriter類等
????? 又支持DOM模型- XmlNode類等
轉載于:https://www.cnblogs.com/zqf620/archive/2007/01/20/625610.html
總結
- 上一篇: 邮件中文显示为乱码
- 下一篇: XPath访问任意深度的XML数据