C 讀取 讀取XML

2021-09-06 02:37:37 字數 3454 閱讀 8834

讀取xml到listbox/combobox

1,知識需求:

(1)訪問xml檔案的兩個基本模型:

一,dom模型;使用dom的好處在於它允許編輯和更新xml文件,可以隨機訪問文件中的資料,可以使用xpath查詢,但是,dom的缺點在於它需要一次性的載入整個文件到記憶體中,對於大型的文件,這會造成資源問題。

二,流模型;流模型很好的解決了這個問題,因為它對xml檔案的訪問採用的是流的概念,也就是說,任何時候在記憶體中只有當前節點,但它也有它的不足,它是唯讀的,僅向前的,不能在文件中執行向後導航操作。雖然是各有千秋,但我們也可以在程式中兩者並用實現優劣互補。c#採用流模型。

(2)xmlreader類

represents a reader that provides fast, non

-cached, forward

-only access to xml data.

該類中有三個重要的衍生類:xmltextreader;xmltextvalidatingreader;xmlnodereader(3

)xmlnodetype列舉

該列舉裡面有很多實用的數。

2,案例(vs2008

xmlreader 資源釋放方法

public

void

dispose()

protected

virtual

void

dispose(

bool

disposing)if(

this

.xtr

!=null)if

(this

.xmlpath

!=null)}

#endregion

#region

xmlreader 的屬性

public

listbox listbox

set}

public

combobox combobox

set}

public

string

xmlpath

set}

#endregion

#region

遍歷xml檔案

public

void

eachxmltolistbox()

}catch

(xmlexception xe)

finally}}

public

void

eachxmltocombobox()

}catch

(xmlexception xe)

finally}}

#endregion

#region

讀取xml檔案

public

void

readxml()

?>

",xtr.name,xtr.value));

//name為節點名;value為節點內容

}else

if(xtr.nodetype

==xmlnodetype.element)

//element元素(例如,)

",xtr.name);

if(xtr.hasattributes)

//if the current node has attributes,return true

=''''''''

", xtr.name, xtr.value);}}

attandele

=attandele.trim() +"

>";

listbox.items.add(attandele);

}else

if(xtr.nodetype

==xmlnodetype.endelement)

//an end element tag (for example, ).

else

if(xtr.nodetype

==xmlnodetype.text)

//the text content of a node. }}

catch

(xmlexception xmlexp)

finally

}#endregion

#region

讀取xml所有文字節點值

public

void

readxmltexttolistbox()}}

catch

(xmlexception xe)

finally

}#endregion}}

C 讀取xml檔案

2.將tinyxml檔案目錄下的tinystr.h tinystr.cpp tinyxml.h tinyxml.cpp tinyxmlerror.cpp tinyxmlparser.cpp等放入工程目錄下 3.使用的xml範例如下 book store book1 book2 4.讀取 如下 a 申...

C 讀取XML檔案

xml結構如下 c users desktop 機台資料 eventdata.txt sa5r22eb 27b4 48d7 9de9 c9df6ddf61af 1c users desktop 機台資料 eventdata.txt urh672eb 27b4 48d7 9de9 c9df6ddf61...

c 遞迴讀取xml

1載入xml 獲取路徑 string xmlpath path.combine textbox 選擇xml檔案.text 建立物件 xmldocument doc new xmldocument 載入xml doc.load xmlpath 得到頂層節點列表 xmlnodelist toplist ...