基於C 中XmlReader讀取Xml的深入分析

2022-09-26 09:24:12 字數 1133 閱讀 9307

xmldocument和xelement在讀取xml時要將整個xml文件放到記憶體中去操作,這樣做操作簡單,但是很費記憶體,而在有些場景下我們必須考慮盡可能節省記憶體.這時候就該xmlreader和xmlwriter出場了。

xmlreader讀取xml需要通過read()例項方法,不斷讀取xml文件中的宣告,節點開始,節點內容,節點結束,以及空白等等,直到文件結束,read()方法返回false。

如下讀取xml內容例項**和注釋說明

複製** **如下:

using system;

using system.collections.generic;

using system.text;

using system.xml;

using system.io;

namespace u***mlreader

//讀取到cat元素 這時rdr.read()讀取到的內容為

else if (elementname == "cat")

} }

else if (rdr.nodetype == xmlnodetype.endelement)

} }

} console.read();

} }

} 如果覺得**不明白,下面是一張讀取順序圖,標明了讀取順序號和每次讀取的內容,如下圖所示:

從圖中可以看到xmlreader在讀取這段xml時:

第1次read()讀取的是xml文件宣告部分

第2次read()讀取的是宣告後的空白

第3次read()讀取的是根節點root的開始標籤

第4次read()讀取的是根節點開始後的空白

第5次read()讀取的是cat節點的開始部分,從左尖括號到右尖括號包括該節點的屬性

第6次讀取的是cat節點的內容

第7次讀取的是cat節點的結束標籤

第8次讀取的是cat節點結束標籤後的空白

第9次讀取的是dog節點的開始部分,注意是從左尖括號開始到結束斜槓之前

第10次讀取的是dog標籤的結束/>

第11次讀取的是dog標籤結束後的空白

第12次讀取的是root的結束標籤

本文標題: 基於c#中xmlreader讀取xml的深入分析

本文位址:

基於C 實現讀取指定路徑檔案

電腦配置 window10,64位作業系統,基於x64的處理器,microsoft visual studio community 2019 version 16.4.5 實現方法 使用 boost filessystem 包。使用 vcpkg 安裝方法 vcpkg.exe install boos...

C 中XML的讀取

本文主要介紹在c 中有關xml的讀取,寫入操作。1.xml的內容如下 xml version 1.0 encoding utf 8 root title settings id 0 name 顯示文字 歡迎您!智慧型服務,互動體驗.settings settings id 1 name 字型 微軟雅...

C 讀取EXCEL中數字無法讀取的方法

今天碰到這問題 看了這個才解決 無法讀取excel中的資料單元格。有資料,但是讀出來全是空值。解決方法 1.在匯入資料連線字串中,將imex 1加入,provider microsoft.jet.oledb.4.0 data source c data.xls extended properties...