XML(可擴展標記語言)
在C#中我們常用來當做一個小型的數據庫來使用,我們可以將信息保存在XML文檔中,或者從XML文檔中獲取數據。這樣就必須使用到XML文檔的數據讀取。
XML文檔的讀取有兩種方式:
一、利用XMLReader逐條讀取,通過判斷XML的NodeType屬性來獲取到XML文檔中信息。
示例:設置可以讀取xml的dtd內容
XmlReaderSettings xs=new XmlReaderSettings();
xs.DtdProcessing=DtdProcessing.Parse;
//用xmlreader對象讀取
XmlReader xml = XmlReader.Create("../../Student.xml",xs);
// bool b= xml.Read();//只進流的方式讀取節點
//string n= xml.Name;//讀取的節點的名稱
//MessageBox.Show(n);
while (xml.Read())
{
string msg = "";
switch (xml.NodeType)
{
case XmlNodeType.Attribute:
msg = "屬性:" + xml.Name;
break;
case XmlNodeType.CDATA:
msg = "CDATA節點:" + xml.Value;
break;
case XmlNodeType.Comment:
msg = "注釋:" + xml.Value;
break;
case XmlNodeType.DocumentType:
msg = "dtd";
break;
case XmlNodeType.Element:
msg = "開始標記:" + xml.Name;
break;
case XmlNodeType.EndElement:
msg = "結束標記:" + xml.Name;
break;
case XmlNodeType.Text:
msg = "內容:" + xml.Value;
break;
case XmlNodeType.Whitespace:
msg = "空白節點";
break;
case XmlNodeType.XmlDeclaration:
msg = "xml文件聲明:"+xml.Name;
break;
default:
break;
}
MessageBox.Show(msg);
}
優點,每次只讀取一條內容,比較節省系統的內容,適合大文件的讀取。
二、利用XMLDocument對象一次性將整個XML文檔加載到內存中,形成一個有層次關系的DOM樹
示例:
XmlDocument doc = new XmlDocument();
doc.Load("../../Part1.xml");
XmlElement xe = doc.DocumentElement;
foreach (XmlNode item in xe.ChildNodes)
{
string province = item.Attributes["id"].Value.ToString();
comboBox1.Items.Add(province);
}
1)XML文檔新增節點
XmlDocument xml=new XmlDocument();
xml.load("../../Student.xml");
//創建一個節點
XmlNode stnode=xml.CreateElement("節點一");//這里是需要創建的節點的名字
//stnode.InnerText="";//這里可以設置節點中的文本
XmlAttribute sta=xml.CreateAtrribute("id");//這里 創建了一個名為id的屬性
stnode.Attributes.Append(sta);//將這個屬性添加到stnode節點中
xml.DocumentElement.AppendChild(stuNode)//最后將創建的節點添加到XML文檔的根節點中
xml.Save("../../Student.xml");//最后將修改后的XML保存到磁盤中
2)XML文檔修改節點
和新增一樣,首先我們需要將整個XML文檔加載到內存中。
然后我們需要獲取到需要修改的節點
XmlNode=xml.selectSingleNode("http://student[@stuNo='"+stuNo+"']");
//xpath 路徑的寫法有兩種 //從跟節點開始往后寫路徑的寫法叫絕對路徑寫法:/students/student/sex //以"http://"開頭寫路徑的寫法為相對路徑的寫法://student/sex //如果節點中右屬性就用[ ]括起來
找到這個節點之后,重新給節點的InnerTextX屬性賦值,就可以實現修改操作。
3)XML文檔刪除操作
首先,我們同樣需要加載XML文檔,然后我們需要獲取到那個要刪除的節點。同樣的調用selectSingleNode方法,
最后我們使用xml.removeChild();就可以將節點移除,每次做完操作之后都別忘了調用xml.Save();將操作后的XML文檔保存到磁盤中。
XMLDocument屬性:
DocumentElement 獲取文檔的根 XmlElement。
ChildNodes 獲取節點的所有子節點。
HasChildNodes 獲取一個值,該值指示節點是否有任何子節點。
FirstChild 獲取節點的第一個子級。
LastChild 獲取節點的最后一個子級
NextSibling 獲取緊接在該節點之后的節點。
PreviousSibling 獲取緊接在該節點之前的節點。
ParentNode 獲取該節點的父級節點。
InnerText 獲取或設置節點及其所有子節點的串聯值。
InnerXml 獲取或設置表示當前節點子級的標記。
Attributes 獲取一個 XmlAttributeCollection,它包含該節點的屬性。
Value 獲取或設置節點的值
Name 獲取節點的限定名。
LocalName 獲取節點的本地名稱。
Prefix 獲取或設置該節點的命名空間前綴。
AppendChild 將指定的節點添加到該節點的子節點列表的末尾
CreateAttribute 創建具有指定名稱的 XmlAttribute
CreateElement 創建 XmlElement
CreateNode 創建 XmlNode
CreateTextNode 創建具有指定文本的 XmlText
RemoveAll 移除當前節點的所有子節點和/或屬性。
RemoveChild 移除指定的子節點。
ReplaceChild 用 newChild 節點替換子節點 oldChild。
WriteTo 將 XmlDocument 節點保存到指定的 XmlWriter。
Save 將 XML 文檔保存到指定的位置。
審核編輯 黃宇
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
XML
+關注
關注
0文章
188瀏覽量
34531 -
鴻蒙OS
+關注
關注
0文章
193瀏覽量
5482
發布評論請先 登錄
相關推薦
熱點推薦
xml文件如何打開?怎樣打開XML文件?
XML是ExtensibleMarkupLanguage的簡寫,一種擴展性標識語言。現在教你打開xml文件的方法和軟件。呵,其實最簡單的就是用EXCEL表格打開了。。也可以用Netsc
發表于 07-04 17:56
xml教程pdf (XML終極教程下載)
xml教程pdf (XML終極教程下載)
Welcome to the XML Bible. After reading this book I hope you’ll agree with me
發表于 10-07 14:15
?0次下載
XML Reference Material
This appendix contains XML reference material. It isdivided into three main parts:1. XML BNF
發表于 10-07 14:18
?8次下載
An Eagle’s Eye View of XML
This first chapter introduces you to XML. It explains ingeneral what XML is and how it is used.
發表于 10-07 14:22
?18次下載
An Introduction to XML Applica
An Introduction to XML Applications
In this chapter we’ll be looking at some examples
發表于 10-07 14:23
?13次下載
XML流上的關鍵字查詢算法
針對當前XML 流過濾研究中存在的問題,使用關鍵字查詢方法作為解決方案。提出最右包含邊界的概念,結合一個虛擬棧實現用于在XML 數據流上進行關鍵字查詢的XVirtualStack 算法
發表于 03-21 15:07
?14次下載
報文解析工具中的XML數據字典
針對報文解析過程中存在的數據存儲無序、查詢和調用不便等問題,提出應用XML 數據字典進行數據存儲的方案。根據給定的數據表,設計XML 形式的數據字典。實現XML 字典數據的解
發表于 03-28 09:38
?36次下載
XML數據分頁索引技術研究
對海量XML文檔的索引查詢技術進行研究,提出一種XML數據分頁索引查詢實現方法。該方法把頁面元素標記數量作為數據分頁依據,建立XML數據的分
發表于 03-31 10:07
?10次下載
基于XBW變換的XML數據壓縮查詢方法
XML數據格式雖然具有易于創建和解析的特點,但數據格式過于冗長,難以實現具體的查詢。該文引入XBW變換,將XML數據壓縮成3個線性序列,使XML數據的
發表于 04-14 09:22
?10次下載
XML數據查詢代價估計算法
XML數據查詢代價估計問題是一種典型的多元素查詢條件代價估計問題。XML數據中的值信息分布不僅與其他值信息分布相關,還與XML數據中的結構信
發表于 01-27 11:35
?6次下載
XML數據流基于組著色的XPath查詢模型
提出了一種新的XML數據流XPath查詢模型GBRender,該模型通過組著色序列來直接處理元素,具有較高的處理效率與較強的適應性。
發表于 08-02 14:16
?0次下載
基于節點集的XML查詢
隨著XML應用的日益廣泛,XML數據管理和查詢問題也引起了人們的普遍關注,并成為研究的熱點。盡管XML有其各種不同的表示和用途,但其本質仍然是基于層次的數據結構,并可映射為相應的
發表于 12-20 09:35
?0次下載
XML基礎——XML必須知道的入門知識
XML(Extensible Markup Language) 即可擴展標記語言。XML是Internet環境中跨平臺的、依賴于內容的技術,是當前處理結構化文檔信息的有力工具
【JAVA UI】【HarmonyOS】【Demo】 鴻蒙如何進行 xml 解析
【鴻蒙】鴻蒙如何進行數據解析 【問題描述】有時候我們從服務器獲取是 xml 格式數據,我們需要將 xml 轉化成 model 對象,該如何使用呢?下面舉個例子說明一下,將分以下幾步進行
鴻蒙OS開發-(用xml寫查詢語句+xml使用)
評論