您好,登錄后才能下訂單哦!
這篇文章主要為大家詳細介紹了解XML的讀、寫操作,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下。
1、XmlDocument創建XML文檔
//1首先要創建一個空的XML文檔 XmlDocument xmldoc = new XmlDocument(); //2在XML的文檔的最頭部加入XML的聲明段落 XmlNode xmlnode = xmldoc.CreateNode(XmlNodeType.XmlDeclaration, "", ""); xmldoc.AppendChild(xmlnode); //3增加注釋 XmlComment xmlComm = xmldoc.CreateComment("注釋內容"); xmldoc.AppendChild(xmlComm); //4為XML文檔加入元素 //加入一個根元素 XmlElement xmlelem = xmldoc.CreateElement("", "學生", ""); //xmltext = xmldoc.CreateTextNode("Root Text"); //xmlelem.AppendChild(xmltext); XmlAttribute xmlAttr = xmldoc.CreateAttribute("專業"); xmlAttr.Value = "計算機"; xmlelem.Attributes.Append(xmlAttr); xmldoc.AppendChild(xmlelem); //注釋:其中"xmlelem"是創建的"XmlElement"對象,"xmltext"是"XmlText"對象 //增加子元素 XmlElement xmlelem2 = xmldoc.CreateElement("姓名"); XmlText xmltext = xmldoc.CreateTextNode("Danny"); xmlelem2.AppendChild(xmltext); xmlelem.AppendChild(xmlelem2); //xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2); XmlElement xmlelem3 = xmldoc.CreateElement("性別"); xmltext = xmldoc.CreateTextNode("男"); xmlelem3.AppendChild(xmltext); xmlelem.AppendChild(xmlelem3); //xmldoc.ChildNodes.Item(1).AppendChild(xmlelem2); //5保存創建好的XML文檔 xmldoc.Save("c:\\sampledata1.xml");
結果:
<?xml version="1.0"?> <!--注釋內容--> <學生 專業="計算機"> <姓名>Danny</姓名> <性別>男</性別> </學生>
2、XmlDocument讀取XML文檔
XmlNodeReader reader = null; try { string s = "", v = ""; XmlDocument doc = new XmlDocument(); // 裝入指定的XML文檔 doc.Load("C:\\sampledata1.xml"); //// 創建一個XmlTextReader對象,讀取XML數據 //XmlTextReader reader = new XmlTextReader("c:\\books.xml"); //// 載入XmlTextReader類的對象 //doc.Load(reader); // 設定XmlNodeReader對象來打開XML文件 reader = new XmlNodeReader(doc); // 讀取XML文件中的數據,并顯示出來 while (reader.Read()) { //判斷當前讀取得節點類型 switch (reader.NodeType) { case XmlNodeType.Element: s = reader.Name; break; case XmlNodeType.Text: { if (s.Equals("Name")) v = reader.Value; else v = reader.Value; } break; } } } finally { //清除打開的數據流 if (reader != null) reader.Close(); }
3、XmlTextWriter創建XML文檔
//1 創建XmlTextWriter類的實例對象 XmlTextWriter textWriter = new XmlTextWriter("c:\\sampledata2.xml", null); //2格式設置,對元素內容進行縮進 textWriter.Formatting = Formatting.Indented; //3書寫版本為“1.0”的 XML聲明 textWriter.WriteStartDocument(); //4寫出在名稱和文本之間帶有空格的處理指令 //String PItext="type='text/xsl' href='book.xsl'"; //textWriter.WriteProcessingInstruction("xml-stylesheet", PItext); //5增加 指定名稱和 可選屬性 的DOCTYPE 聲明 textWriter.WriteDocType("學生", null, null, "<!ENTITY sex '男'>"); //6增加注釋 textWriter.WriteComment("XML注釋"); //7創建開始元素. textWriter.WriteStartElement("學生"); //創建屬性1 textWriter.WriteAttributeString("專業", "計算機"); //創建屬性2 textWriter.WriteAttributeString("日期", "2008-09-01"); //8創建元素1 textWriter.WriteElementString("姓名", "Danny"); //創建元素2 textWriter.WriteStartElement("性別"); textWriter.WriteEntityRef("sex");//創建實體的引用 textWriter.WriteEndElement(); //創建元素3 textWriter.WriteElementString("年齡", "25"); //9寫CDATA. textWriter.WriteCData("年齡大了"); //10關閉根. textWriter.WriteEndElement(); textWriter.WriteEndDocument(); //11寫XML文件,并關閉textWriter. textWriter.Flush(); textWriter.Close();
結果:
<?xml version="1.0"?> <!DOCTYPE 學生[<!ENTITY sex '男'>]> <!--XML注釋--> <學生 日期="2008-09-01" 專業="計算機"> <姓名>Danny</姓名> <性別>&sex;</性別> <年齡>25</年齡> <![CDATA[年齡大了]]> </學生>
4、XmlTextReader讀取XML文檔
// 創建一個XmlTextReader類的對象并調用Read方法來讀取文件 XmlTextReader textReader = new XmlTextReader("C:\\sampledata2.xml"); textReader.Read(); // 節點非空則執行循環體 while (textReader.Read()) { XmlNodeType nType = textReader.NodeType;//當前節點的類型 switch (nType) { case XmlNodeType.XmlDeclaration: break; case XmlNodeType.Comment: break; case XmlNodeType.Attribute: break; case XmlNodeType.Element: break; case XmlNodeType.Entity: break; case XmlNodeType.DocumentType: break; case XmlNodeType.Whitespace: break; } // 讀取第一個元素 textReader.MoveToElement(); Response.Write("-----------------------"); // 讀取該元素的屬性并顯示在控制臺中 Response.Write("Name:" + textReader.Name); Response.Write("Base URI:" + textReader.BaseURI); Response.Write("Local Name:" + textReader.LocalName); Response.Write("Attribute Count:" + textReader.AttributeCount.ToString()); Response.Write("Depth:" + textReader.Depth.ToString()); Response.Write("Line Number:" + textReader.LineNumber.ToString()); Response.Write("Node Type:" + textReader.NodeType.ToString()); Response.Write("Attribute Count:" + textReader.Value.ToString()); }
以上就是XML的讀、寫操作的詳細內容了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。