C# XML操作 代碼大全(讀XML,寫XML,更新,刪除節(jié)_第1頁
C# XML操作 代碼大全(讀XML,寫XML,更新,刪除節(jié)_第2頁
C# XML操作 代碼大全(讀XML,寫XML,更新,刪除節(jié)_第3頁
C# XML操作 代碼大全(讀XML,寫XML,更新,刪除節(jié)_第4頁
C# XML操作 代碼大全(讀XML,寫XML,更新,刪除節(jié)_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、1、插入節(jié)點 往節(jié)點中插入一個節(jié)點: 復(fù)制代碼 代碼如下:XmlDocument xmlDoc=new XmlDocument(; xmlDoc.Load(bookstore.xml; XmlNode root=xmlDoc.SelectSingleNode(bookstore;/查找 XmlElement xe1=xmlDoc.CreateElement(book;/創(chuàng)建一個節(jié)點 xe1.SetAttribute(genre,李贊紅;/設(shè)置該節(jié)點genre屬性 xe1.SetAttribute(ISBN,2-3631-4;/設(shè)置該節(jié)點ISBN屬性 XmlElement xesub1=xmlD

2、oc.CreateElement(title; xesub1.InnerText=CS從入門到精通;/設(shè)置文本節(jié)點 xe1.AppendChild(xesub1;/添加到節(jié)點中 XmlElement xesub2=xmlDoc.CreateElement(author; xesub2.InnerText=候捷; xe1.AppendChild(xesub2; XmlElement xesub3=xmlDoc.CreateElement(price; xesub3.InnerText=58.3; xe1.AppendChild(xesub3; root.AppendChild(xe1;/添加到節(jié)

3、點中 xmlDoc.Save(bookstore.xml; 結(jié)果為: Corets, Eva 5.95 候捷 58.3 2、修改節(jié)點: 將genre屬性值為“李贊紅“的節(jié)點的genre值改為“update李贊紅”,將該節(jié)點的子節(jié)點的文本修改為“亞勝”。 復(fù)制代碼 代碼如下:XmlNodeList nodeList=xmlDoc.SelectSingleNode(bookstore.ChildNodes;/獲取bookstore節(jié)點的所有子節(jié)點 foreach(XmlNode xn in nodeList/遍歷所有子節(jié)點 XmlElement xe=(XmlElementxn;/將子節(jié)點類型轉(zhuǎn)換

4、為XmlElement類型 if(xe.GetAttribute(genre=李贊紅/如果genre屬性值為“李贊紅” xe.SetAttribute(genre,update李贊紅;/則修改該屬性為“update李贊紅” XmlNodeList nls=xe.ChildNodes;/繼續(xù)獲取xe子節(jié)點的所有子節(jié)點 foreach(XmlNode xn1 in nls/遍歷 XmlElement xe2=(XmlElementxn1;/轉(zhuǎn)換類型 if(xe2.Name=author/如果找到 xe2.InnerText=亞勝;/則修改 break;/找到退出來就可以了 break; xmlDo

5、c.Save(bookstore.xml;/保存。 最后結(jié)果為: Corets, Eva 5.95 亞勝 58.3 3、刪除節(jié)點 節(jié)點的genre屬性,刪除 節(jié)點。 復(fù)制代碼 代碼如下:XmlNodeList xnl=xmlDoc.SelectSingleNode(bookstore.ChildNodes; foreach(XmlNode xn in xnl XmlElement xe=(XmlElementxn; if(xe.GetAttribute(genre=fantasy xe.RemoveAttribute(genre;/刪除genre屬性 else if(xe.GetAttribu

6、te(genre=update李贊紅 xe.RemoveAll(;/刪除該節(jié)點的全部內(nèi)容 xmlDoc.Save(bookstore.xml; 最后結(jié)果為: Corets, Eva 5.95 4、顯示所有數(shù)據(jù)。 復(fù)制代碼 代碼如下:XmlNode xn=xmlDoc.SelectSingleNode(bookstore; XmlNodeList xnl=xn.ChildNodes; foreach(XmlNode xnf in xnl XmlElement xe=(XmlElementxnf; Console.WriteLine(xe.GetAttribute(genre;/顯示屬性值 Con

7、sole.WriteLine(xe.GetAttribute(ISBN; XmlNodeList xnf1=xe.ChildNodes; foreach(XmlNode xn2 in xnf1 Console.WriteLine(xn2.InnerText;/顯示子節(jié)點點文本 loading. 一個通過DataSet操作XML的類(源代碼) 復(fù)制代碼 代碼如下:using System; using System.Data; using System.Xml; /* / 作者: 明天去要飯 / QICQ: 305725744 / .Net群: 6370988 /* namespace YSTR

8、P.Common / / OperateXmlByDataSet 的摘要說明。 / public class OperateXmlByDataSet public OperateXmlByDataSet( / / TODO: 在此處添加構(gòu)造函數(shù)邏輯 / #region GetDataSetByXml / / 讀取xml直接返回DataSet / / xml文件相對路徑 / public static DataSet GetDataSetByXml(string strXmlPath try DataSet ds = new DataSet(; ds.ReadXml(GetXmlFullPath

9、(strXmlPath; return ds; return null; catch(Exception ex return null; #endregion #region GetDataViewByXml / / 讀取Xml返回一個經(jīng)排序或篩選后的DataView / / / 篩選條件,如:name = kgdiwss / 排序條件,如:Id desc / public static DataView GetDataViewByXml(string strXmlPath,string strWhere,string strSort try DataSet ds = new DataSet(

10、; ds.ReadXml(GetXmlFullPath(strXmlPath; DataView dv = new DataView(ds.Tables0; if(strSort != null dv.Sort = strSort; if(strWhere != null dv.RowFilter = strWhere; return dv; catch(Exception return null; #endregion #region WriteXmlByDataSet / / 向Xml文件插入一行數(shù)據(jù) / / xml文件相對路徑 / 要插入行的列名數(shù)組,如:string Columns =

11、 name,IsMarried; / 要插入行每列的值數(shù)組,如:string ColumnValue=明天去要飯,false; / 成功返回true,否則返回false public static bool WriteXmlByDataSet(string strXmlPath,string Columns,string ColumnValue try /根據(jù)傳入的XML路徑得到.XSD的路徑,兩個文件放在同一個目錄下 string strXsdPath = strXmlPath.Substring(0,strXmlPath.IndexOf(. + .xsd; DataSet ds = new

12、 DataSet(; /讀xml架構(gòu),關(guān)系到列的數(shù)據(jù)類型 ds.ReadXmlSchema(GetXmlFullPath(strXsdPath; ds.ReadXml(GetXmlFullPath(strXmlPath; DataTable dt = ds.Tables0; /在原來的表格基礎(chǔ)上創(chuàng)建新行 DataRow newRow = dt.NewRow(; /循環(huán)給一行中的各個列賦值 for(int i=0; i 0 for(int i=0; i ds.Tables0.Rows.Count; i+ /如果當(dāng)前記錄為符合Where條件的記錄 if(ds.Tables0.RowsistrWhe

13、reColumnName.ToString(.Trim(.Equals(strWhereColumnValue /循環(huán)給找到行的各列賦新值 for(int j=0; j 0 /刪除符號條件的行 ds.Tables0.RowsiDeleteRow.Delete(; ds.WriteXml(GetXmlFullPath(strXmlPath; return true; catch(Exception return false; #endregion #region DeleteXmlRows / / 刪除strColumn列中值為ColumnValue的行 / / xml相對路徑 / 列名 / s

14、trColumn列中值為ColumnValue的行均會被刪除 / public static bool DeleteXmlRows(string strXmlPath,string strColumn,string ColumnValue try DataSet ds = new DataSet(; ds.ReadXml(GetXmlFullPath(strXmlPath; /先判斷行數(shù) if(ds.Tables0.Rows.Count 0 /判斷行多還是刪除的值多,多的for循環(huán)放在里面 if(ColumnValue.Length ds.Tables0.Rows.Count for(int

15、i=0; i ds.Tables0.Rows.Count; i+ for(int j=0; j ColumnValue.Length; j+ if(ds.Tables0.RowsistrColumn.ToString(.Trim(.Equals(ColumnValuej ds.Tables0.Rowsi.Delete(; else for(int j=0; j ColumnValue.Length; j+ for(int i=0; i 0 /移除所有記錄 ds.Tables0.Rows.Clear(; /重新寫入,這時XML文件中就只剩根節(jié)點了 ds.WriteXml(GetXmlFullPath(strXmlPath; return true; catch

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論