XML 讀寫(基於流的操作)

2021-09-08 14:54:06 字數 1136 閱讀 5335

基於流的 xml 處理

.net framework 允許你使用 system.xml 命名空間(以及它的子命名空間)中的一組類來操作 xml 資料。有兩個基於流的類:xmltextreader 和 xmltextwriter ,它們對簡單的 xml 處理非常有效。

.net 通過兩種方式把 xml 資料寫入檔案:

下面的示例演示如何使用 xmltextwriter 建立乙個格式良好的 xml 檔案:

void writexml()

如果要給它乙個唯一的 xml 命名空間標識 xml 文件,那麼元素也需要放到這個命名空間裡。如果要這麼做,首先要使用 writeattributestring()輸出乙個 xmlns 特性,通常會把這個特性加到文件的根元素或第乙個使用命名空間的元素上。其次,元素名稱必須使用命名空間字首限定,writestartelement()方法的過載版本可以達到這一目的。

基於流的方法減少了記憶體負擔,但如果對 xml 文件執行耗時任務或為了不影響別人訪問這個xml文件,還是選擇在記憶體中操作的方式較好。

xmltextreader 讀取 xml 檔案固然簡單,但也是最不靈活的。檔案以順序讀取,不能夠像處理記憶體中 xml 那樣自由的移動到父、子、兄弟節點。

下面的**載入原始檔,然後開始每次移動乙個文件節點的迴圈:

private

string readxml()

if (reader.attributecount > 0)
}
}
reader.close();
return str.tostring();
}

使用 xmltextreader 時,必須盡可能快的結束任務並關閉閱讀器,因為它在檔案上有乙個鎖。

下面這段**以更直觀的方式從 *** 列表中獲取資料:

private

string readxml()

}
reader.close();
return str.tostring();
}

基於流的XML檔案操作筆記

xmlreader與 sax讀取器類似,不過前者是提取模式 只進唯讀的游標 後者是推送模式 將事件推送到應用程式 xmlreader的優點是 1 簡化狀態管理 2 可以有多個輸入流 3 提取模式可以作為推送模式的基礎,反之不行。4 提供乙個可以將字串直接寫入緩衝區,避免多餘位元組的的複製。5 有選擇...

基於DOM的XML文件讀寫

2012年3月22日 天氣 下雨 何來晴日,都下了快兩個月雨了,春雨綿綿,也不用這樣吧!基於dom的xml文件讀寫 using system using system.collections.generic using system.text using system.xml namespace x...

Python io流的讀寫操作

自擬需求 將一段對話解析出來,並規範命名格式為 人名 序號 如下 在完善這個功能之前遇到兩個錯誤 1.unicodedecodeerror gbk codec can t decode byte 0xab in position 8 illegal multibyte sequence 這個是由於檔...