![C# XML操作 代碼大全(讀XML,寫(xiě)XML,更新,刪除節(jié)點(diǎn),與dataset結(jié)合_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/bd00cef7-d849-4e2b-9184-af0abbda088e/bd00cef7-d849-4e2b-9184-af0abbda088e1.gif)
![C# XML操作 代碼大全(讀XML,寫(xiě)XML,更新,刪除節(jié)點(diǎn),與dataset結(jié)合_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/bd00cef7-d849-4e2b-9184-af0abbda088e/bd00cef7-d849-4e2b-9184-af0abbda088e2.gif)
![C# XML操作 代碼大全(讀XML,寫(xiě)XML,更新,刪除節(jié)點(diǎn),與dataset結(jié)合_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/bd00cef7-d849-4e2b-9184-af0abbda088e/bd00cef7-d849-4e2b-9184-af0abbda088e3.gif)
![C# XML操作 代碼大全(讀XML,寫(xiě)XML,更新,刪除節(jié)點(diǎn),與dataset結(jié)合_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/bd00cef7-d849-4e2b-9184-af0abbda088e/bd00cef7-d849-4e2b-9184-af0abbda088e4.gif)
![C# XML操作 代碼大全(讀XML,寫(xiě)XML,更新,刪除節(jié)點(diǎn),與dataset結(jié)合_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-1/22/bd00cef7-d849-4e2b-9184-af0abbda088e/bd00cef7-d849-4e2b-9184-af0abbda088e5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、1、插入節(jié)點(diǎn) 往節(jié)點(diǎn)中插入一個(gè)節(jié)點(diǎn): 復(fù)制代碼 代碼如下:XmlDocument xmlDoc=new XmlDocument(; xmlDoc.Load("bookstore.xml" XmlNode root=xmlDoc.SelectSingleNode("bookstore"/查找 XmlElement xe1=xmlDoc.CreateElement("book"/創(chuàng)建一個(gè)節(jié)點(diǎn) xe1.SetAttribute("genre","李贊紅"/設(shè)置該節(jié)點(diǎn)genre屬性 xe1.SetAtt
2、ribute("ISBN","2-3631-4"/設(shè)置該節(jié)點(diǎn)ISBN屬性 XmlElement xesub1=xmlDoc.CreateElement("title" xesub1.InnerText="CS從入門(mén)到精通"/設(shè)置文本節(jié)點(diǎn) xe1.AppendChild(xesub1;/添加到節(jié)點(diǎn)中 XmlElement xesub2=xmlDoc.CreateElement("author" xesub2.InnerText="候捷" xe1.AppendChild(xesu
3、b2; XmlElement xesub3=xmlDoc.CreateElement("price" xesub3.InnerText="58.3" xe1.AppendChild(xesub3; root.AppendChild(xe1;/添加到節(jié)點(diǎn)中 xmlDoc.Save("bookstore.xml" 結(jié)果為: Corets, Eva 5.95 候捷 58.3 2、修改節(jié)點(diǎn): 將genre屬性值為“李贊紅“的節(jié)點(diǎn)的genre值改為“update李贊紅”,將該節(jié)點(diǎn)的子節(jié)點(diǎn)的文本修改為“亞勝”。 復(fù)制代碼 代碼如下:XmlNode
4、List nodeList=xmlDoc.SelectSingleNode("bookstore".ChildNodes;/獲取bookstore節(jié)點(diǎn)的所有子節(jié)點(diǎn) foreach(XmlNode xn in nodeList/遍歷所有子節(jié)點(diǎn) XmlElement xe=(XmlElementxn;/將子節(jié)點(diǎn)類(lèi)型轉(zhuǎn)換為XmlElement類(lèi)型 if(xe.GetAttribute("genre"="李贊紅"/如果genre屬性值為“李贊紅” xe.SetAttribute("genre","update李贊
5、紅"/則修改該屬性為“update李贊紅” XmlNodeList nls=xe.ChildNodes;/繼續(xù)獲取xe子節(jié)點(diǎn)的所有子節(jié)點(diǎn) foreach(XmlNode xn1 in nls/遍歷 XmlElement xe2=(XmlElementxn1;/轉(zhuǎn)換類(lèi)型 if(xe2.Name="author"/如果找到 xe2.InnerText="亞勝"/則修改 break;/找到退出來(lái)就可以了 break; xmlDoc.Save("bookstore.xml"/保存。 最后結(jié)果為: Corets, Eva 5.95 亞
6、勝 58.3 3、刪除節(jié)點(diǎn) 節(jié)點(diǎn)的genre屬性,刪除 節(jié)點(diǎn)。 復(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.GetAttribute(&
7、quot;genre"="update李贊紅" xe.RemoveAll(;/刪除該節(jié)點(diǎn)的全部?jī)?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.
8、WriteLine(xe.GetAttribute("genre"/顯示屬性值 Console.WriteLine(xe.GetAttribute("ISBN" XmlNodeList xnf1=xe.ChildNodes; foreach(XmlNode xn2 in xnf1 Console.WriteLine(xn2.InnerText;/顯示子節(jié)點(diǎn)點(diǎn)文本 loading. 一個(gè)通過(guò)DataSet操作XML的類(lèi)(源代碼) 復(fù)制代碼 代碼如下:using System; using System.Data; using System.Xml; usi
9、ng System.Windows.Forms; /* / 作者: 明天去要飯 / QICQ: 305725744 / .Net群: 6370988 /* namespace YSTRP.Common / / OperateXmlByDataSet 的摘要說(shuō)明。 / public class OperateXmlByDataSet public OperateXmlByDataSet( / / TODO: 在此處添加構(gòu)造函數(shù)邏輯 / #region GetDataSetByXml / / 讀取xml直接返回DataSet / / xml文件相對(duì)路徑 / public static DataSe
10、t GetDataSetByXml(string strXmlPath try DataSet ds = new DataSet(; ds.ReadXml(GetXmlFullPath(strXmlPath; if(ds.Tables.Count > 0 return ds; return null; catch(Exception ex System.Windows.Forms.MessageBox.Show(ex.ToString(; return null; #endregion #region GetDataViewByXml / / 讀取Xml返回一個(gè)經(jīng)排序或篩選后的DataV
11、iew / / / 篩選條件,如:"name = kgdiwss" / 排序條件,如:"Id desc" / public static DataView GetDataViewByXml(string strXmlPath,string strWhere,string strSort try DataSet ds = new DataSet(; ds.ReadXml(GetXmlFullPath(strXmlPath; DataView dv = new DataView(ds.Tables0; if(strSort != null dv.Sort =
12、 strSort; if(strWhere != null dv.RowFilter = strWhere; return dv; catch(Exception return null; #endregion #region WriteXmlByDataSet / / 向Xml文件插入一行數(shù)據(jù) / / xml文件相對(duì)路徑 / 要插入行的列名數(shù)組,如:string Columns = "name","IsMarried" / 要插入行每列的值數(shù)組,如:string ColumnValue="明天去要飯","false&quo
13、t; / 成功返回true,否則返回false public static bool WriteXmlByDataSet(string strXmlPath,string Columns,string ColumnValue try /根據(jù)傳入的XML路徑得到.XSD的路徑,兩個(gè)文件放在同一個(gè)目錄下 string strXsdPath = strXmlPath.Substring(0,strXmlPath.IndexOf("." + ".xsd" DataSet ds = new DataSet(; /讀xml架構(gòu),關(guān)系到列的數(shù)據(jù)類(lèi)型 ds.ReadXm
14、lSchema(GetXmlFullPath(strXsdPath; ds.ReadXml(GetXmlFullPath(strXmlPath; DataTable dt = ds.Tables0; /在原來(lái)的表格基礎(chǔ)上創(chuàng)建新行 DataRow newRow = dt.NewRow(; /循環(huán)給一行中的各個(gè)列賦值 for(int i=0; i< Columns.Length; i+ newRowColumnsi = ColumnValuei; dt.Rows.Add(newRow; dt.AcceptChanges(; ds.AcceptChanges(; ds.WriteXml(Get
15、XmlFullPath(strXmlPath; return true; catch(Exception return false; #endregion #region UpdateXmlRow / / 更行符合條件的一條Xml記錄 / / XML文件路徑 / 列名數(shù)組 / 列值數(shù)組 / 條件列名 / 條件列值 / public static bool UpdateXmlRow(string strXmlPath,string Columns,string ColumnValue,string strWhereColumnName,string strWhereColumnValue try
16、 string strXsdPath = strXmlPath.Substring(0,strXmlPath.IndexOf("." + ".xsd" DataSet ds = new DataSet(; /讀xml架構(gòu),關(guān)系到列的數(shù)據(jù)類(lèi)型 ds.ReadXmlSchema(GetXmlFullPath(strXsdPath; ds.ReadXml(GetXmlFullPath(strXmlPath; /先判斷行數(shù) if(ds.Tables0.Rows.Count > 0 for(int i=0; i< ds.Tables0.Rows.Cou
17、nt; i+ /如果當(dāng)前記錄為符合Where條件的記錄 if(ds.Tables0.RowsistrWhereColumnName.ToString(.Trim(.Equals(strWhereColumnValue /循環(huán)給找到行的各列賦新值 for(int j=0; j < Columns.Length; j+ ds.Tables0.RowsiColumnsj = ColumnValuej; /更新DataSet ds.AcceptChanges(; /重新寫(xiě)入XML文件 ds.WriteXml(GetXmlFullPath(strXmlPath; return true; retu
18、rn false; catch(Exception return false; #endregion #region DeleteXmlRowByIndex / / 通過(guò)刪除DataSet中iDeleteRow這一行,然后重寫(xiě)Xml以實(shí)現(xiàn)刪除指定行 / / / 要?jiǎng)h除的行在DataSet中的Index值 public static bool DeleteXmlRowByIndex(string strXmlPath,int iDeleteRow try DataSet ds = new DataSet(; ds.ReadXml(GetXmlFullPath(strXmlPath; if(ds.
19、Tables0.Rows.Count > 0 /刪除符號(hào)條件的行 ds.Tables0.RowsiDeleteRow.Delete(; ds.WriteXml(GetXmlFullPath(strXmlPath; return true; catch(Exception return false; #endregion #region DeleteXmlRows / / 刪除strColumn列中值為ColumnValue的行 / / xml相對(duì)路徑 / 列名 / strColumn列中值為ColumnValue的行均會(huì)被刪除 / public static bool DeleteXml
20、Rows(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 i=0; i < ds.Tables0.Rows.Count; i+ for(int j=0;
21、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 < ds.Tables0.Rows.Count; i+ if(ds.Tables0.RowsistrColumn.ToString(.Trim(.Equals(ColumnValuej ds.Tables0.Rowsi.Del
22、ete(; ds.WriteXml(GetXmlFullPath(strXmlPath; return true; catch(Exception return false; #endregion #region DeleteXmlAllRows / / 刪除所有行 / / XML路徑 / public static bool DeleteXmlAllRows(string strXmlPath try DataSet ds = new DataSet(; ds.ReadXml(GetXmlFullPath(strXmlPath; /如果記錄條數(shù)大于0 if(ds.Tables0.Rows.C
23、ount > 0 /移除所有記錄 ds.Tables0.Rows.Clear(; /重新寫(xiě)入,這時(shí)XML文件中就只剩根節(jié)點(diǎn)了 ds.WriteXml(GetXmlFullPath(strXmlPath; return true; catch(Exception return false; #endregion #region GetXmlFullPath / / 返回完整路徑 / / Xml的路徑 / public static string GetXmlFullPath(string strPath if(strPath.IndexOf(":" > 0 ret
24、urn strPath; else return Application.StartupPath + strPath; #endregion 詳細(xì)出處參考:一個(gè)通過(guò)DataSet操作XML的類(lèi) 這段時(shí)間寫(xiě)的項(xiàng)目每次都要用到XML保存一些配置,而每次操作XML都覺(jué)得挺麻煩,沒(méi)有數(shù)據(jù)庫(kù)那么順手。后來(lái)發(fā)現(xiàn)用DataSet操作XML很方便,而且靈活性比較好,于是寫(xiě)了一個(gè)操作XML的類(lèi),用來(lái)應(yīng)付一般的XML操作(源碼下載附件。 1 基本思路 其實(shí)用DataSet操作XML,歸根到底就是對(duì)DataSet里的表格,行,列等進(jìn)行操作,然后用DataSet里的東西重新寫(xiě)到XML中,從而實(shí)現(xiàn)編輯XML的目的。如果
25、再配合上.xsd文件的話,那效果更佳。 2 程序詳解 (1 XML文件內(nèi)容 本類(lèi)操作的XML和生成的XML格式是一樣的,如下: /xml_xmlDB.xsd"> 2 A程序員 2 開(kāi)發(fā)B/S結(jié)構(gòu)程序 c#等 建國(guó)路XXX 2008-8-31 false 4 c#程序員 2 開(kāi)發(fā)B/S結(jié)構(gòu)程序 c#等 建國(guó)路XXX 2008-8-31 false 然后點(diǎn)擊XML文件右下角的“數(shù)據(jù)”,即可看到熟悉的表格形式,在表格的任意位置上單擊右鍵選擇“創(chuàng)建架構(gòu)”,將會(huì)生成一個(gè).xsd文件,該文件用來(lái)定義XML各列的類(lèi)型。其內(nèi)容如下(點(diǎn)擊查看代碼2附件: htt
26、p://xml_xmlDB.xsd" xmlns:mstns="/xml_xmlDB.xsd"xmlns="/xml_xmlDB.xsd" xmlns:xs="/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"attributeFormDefault="qualified" ele
27、mentFormDefault="qualified"> msdata:Locale="zh-CN" msdata:EnforceConstaints="False">?msdata:AutoIncrement="true" msdata:AutoIncrementStep="1"msdata:AutoIncrementSeed="1" /> 注意:如果想像數(shù)據(jù)庫(kù)一樣有一個(gè)自動(dòng)增長(zhǎng)的ID字段,則可以這樣操作: 首先在XML中添加一個(gè)元素,這樣生成.xsd的時(shí)
28、候,就會(huì)有一個(gè)ID段,在.xsd中選中ID這一列,在右邊的屬性中,將“AutoIncrementSeed”和“AutoIncrementStep”分別設(shè)置為1,這樣ID就會(huì)從1開(kāi)始以步長(zhǎng)為1自動(dòng)增長(zhǎng)。 以上代碼如果看不懂并不要緊,因?yàn)槲覀兛梢酝ㄟ^(guò)DataSet來(lái)生成這種格式的內(nèi)容。接下來(lái)將開(kāi)始操作XML。 (2 處理XML文件路徑 這里主要是對(duì)傳入的XML路徑進(jìn)行處理,如果傳入的是相對(duì)路徑,則返回完整路徑,如果傳入的是完整路徑,則不做處理直接返回。方法如下: #region GetXmlFullPath / / 返回完整路徑 / / Xml的路徑 / public static string
29、GetXmlFullPath(string strPath /如果路徑中含有:符號(hào),則認(rèn)定為傳入的是完整路徑 if(strPath.IndexOf(":" > 0 return strPath; else /返回完整路徑 return System.Web.HttpContext.Current.Server.MapPath(strPath; #endregion (3 讀取記錄 讀取XML的數(shù)據(jù)到DataSet中的方法為: #region GetDataSetByXml / / 讀取xml直接返回DataSet / / xml文件相對(duì)路徑 / public stat
30、ic DataSet GetDataSetByXml(string strXmlPath try DataSet ds = new DataSet(; /讀取XML到DataSet ds.ReadXml(GetXmlFullPath(strXmlPath; if(ds.Tables.Count > 0 return ds; return null; catch(Exception return null; #endregion 以上方法將得到一個(gè)DataSet,里面保存的是全部XML記錄的信息,而且沒(méi)有經(jīng)過(guò)任何處理。但很多時(shí)候我們需要的只是一些滿(mǎn)足條件的記錄,這時(shí)需要用以下方法得到: #
31、region GetDataViewByXml / summary / 讀取Xml返回一個(gè)經(jīng)排序或篩選后的DataView / /summary / param name="strXmlPath"/param / param name="strWhere"篩選條件,如:"name = kgdiwss"/param / param name="strSort"排序條件,如:"Id desc"/param / returns/returns public static DataView GetDat
32、aViewByXml(string strXmlPath,string strWhere,string strSort try DataSet ds = new DataSet(; ds.ReadXml(GetXmlFullPath(strXmlPath; /創(chuàng)建DataView來(lái)完成排序或篩選操作 DataView dv = new DataView(ds.Tables0; if(strSort != null /對(duì)DataView中的記錄進(jìn)行排序 dv.Sort = strSort; if(strWhere != null /對(duì)DataView中的記錄進(jìn)行篩選,找到我們想要的記錄 dv.R
33、owFilter = strWhere; return dv; catch(Exception return null; #endregion (4 插入記錄 到現(xiàn)在為止我們已經(jīng)可以隨意讀取XML中的記錄,接下來(lái)來(lái)實(shí)現(xiàn)寫(xiě)入XML的操作,方法如下: #region WriteXmlByDataSet / summary / 向Xml文件插入一行數(shù)據(jù) / /summary / param name="strXmlPath"xml文件相對(duì)路徑/param / param name="Columns"要插入行的列名數(shù)組,如:string Columns = &q
34、uot;name","IsMarried"/param / param name="ColumnValue"要插入行每列的值數(shù)組,如:string ColumnValue="kgdiwss","false"/param / returns成功返回true,否則返回false/returns public static bool WriteXmlByDataSet(string strXmlPath,string Columns,string ColumnValue try /根據(jù)傳入的XML路徑得到.XS
35、D的路徑,兩個(gè)文件放在同一個(gè)目錄下string strXsdPath = strXmlPath.Substring(0,strXmlPath.IndexOf("." + ".xsd" DataSet ds = new DataSet(; /讀xml架構(gòu),關(guān)系到列的數(shù)據(jù)類(lèi)型 ds.ReadXmlSchema(GetXmlFullPath(strXsdPath; ds.ReadXml(GetXmlFullPath(strXmlPath; DataTable dt = ds.Tables0; /在原來(lái)的表格基礎(chǔ)上創(chuàng)建新行 DataRow newRow = dt
36、.NewRow(; /循環(huán)給 一行中的各個(gè)列賦值 for(int i=0; i Columns.Length; i+ newRowColumnsi = ColumnValuei; dt.Rows.Add(newRow; dt.AcceptChanges(; ds.AcceptChanges(; ds.WriteXml(GetXmlFullPath(strXmlPath; return true; catch(Exception return false; #endregion 可能有的朋友不知道怎么用這個(gè)方法插入數(shù)據(jù),在后面我將用實(shí)例介紹。 (5 修改記錄 修改記錄的方法要傳入的參數(shù)相對(duì)較多,
37、因?yàn)樾薷挠涗浶枰榷ㄎ坏骄唧w哪一條記錄,再修改指定列的值,以下為修改XML的方法: #region UpdateXmlRow / summary / 更行符合條件的一條Xml記錄 / /summary / param name="strXmlPath"XML文件路徑/param / param name="Columns"列名數(shù)組/param / param name="ColumnValue"列值數(shù)組/param / param name="strWhereColumnName"條件列名/param / para
38、m name="strWhereColumnValue"條件列值/param / returns/returns public static bool UpdateXmlRow(string strXmlPath,string Columns,string ColumnValue,string strWhereColumnName,string strWhereColumnValue try /同上一方法 string strXsdPath = strXmlPath.Substring(0,strXmlPath.IndexOf("." + ".
39、xsd" DataSet ds = new DataSet(; /讀xml架構(gòu),關(guān)系到列的數(shù)據(jù)類(lèi)型 ds.ReadXmlSchema(GetXmlFullPath(strXsdPath; ds.ReadXml(GetXmlFullPath(strXmlPath; /先判斷行數(shù) if(ds.Tables0.Rows.Count 0 for(int i=0; i ds.Tables0.Rows.Count; i+ /如果當(dāng)前記錄為符合Where條件的記錄if(ds.Tables0.RowsistrWhereColumnName.ToString(.Trim(.Equals(strWher
40、eColumnValue /循環(huán)給找到行的各列賦新值 for(int j=0; j Columns.Length; j+ ds.Tables0.RowsiColumnsj = ColumnValuej; /更新DataSet ds.AcceptChanges(; /重新寫(xiě)入XML文件 ds.WriteXml(GetXmlFullPath(strXmlPath; return true; return false; catch(Exception return false; #endregion (6 刪除記錄 為了方便,刪除記錄提供了三個(gè)方法,一個(gè)可以刪除所有記錄,一個(gè)刪除符合條件的行,還有一
41、個(gè)刪除指定Index值的行,該Index值和記錄在Data Set中的Index值對(duì)應(yīng)。刪除所有記錄的方法為: #region DeleteXmlAllRows / summary / 刪除所有行 / /summary / param name="strXmlPath"XML路徑/param / returns/returns public static bool DeleteXmlAllRows(string strXmlPath try DataSet ds = new DataSet(; ds.ReadXml(GetXmlFullPath(strXmlPath; /如
42、果記錄條數(shù)大于0 if(ds.Tables0.Rows.Count 0 /移除所有記錄 ds.Tables0.Rows.Clear(; /重新寫(xiě)入,這時(shí)XML文件中就只剩根節(jié)點(diǎn)了 ds.WriteXml(GetXmlFullPath(strXmlPath; return true; catch(Exception return false; #endregion 刪除指定Index值的行的方法為: #region DeleteXmlRowByIndex / summary / 通過(guò)刪除DataSet中iDeleteRow這一行,然后重寫(xiě)Xml以實(shí)現(xiàn)刪除指定行 / /summary / para
43、m name="strXmlPath"/param / param name="iDeleteRow"要?jiǎng)h除的行在DataSet中的Index值/param public static bool DeleteXmlRowByIndex(string strXmlPath,int iDeleteRow try DataSet ds = new DataSet(; ds.ReadXml(GetXmlFullPath(strXmlPath; if(ds.Tables0.Rows.Count 0 /刪除符號(hào)條件的行 ds.Tables0.RowsiDeleteR
44、ow.Delete(; ds.WriteXml(GetXmlFullPath(strXmlPath; return true; catch(Exception return false; #endregion 這里說(shuō)一下提供此方法的原因,有的時(shí)候?qū)ML的內(nèi)容讀到DataSet,然后綁定到DataGrid后,由于DataGrid中只有一個(gè)模板列,而模板列里又套了表格等許多控件,這就使得我們可能無(wú)法得到記錄對(duì)應(yīng)的ID值,這個(gè)時(shí)候就可以先得到記錄的Index值(第一行為0,第二行為1,以此類(lèi)推,然后將該Index值傳到方法中,就可以將該記錄刪掉。 注意:使用該方法的時(shí)候,綁定到DataGrid上的
45、DataSet和刪除時(shí)用的DataSet要為同一個(gè),也就是說(shuō)Index要相同,不能有排序,不然會(huì)誤將記錄。 有時(shí)候我們需要?jiǎng)h除符合條件的多行,這個(gè)時(shí)候可以用以下方法實(shí)現(xiàn): #region DeleteXmlRows / summary / 刪除strColumn列中值為ColumnValue的行 / /summary / param name="strXmlPath"xml相對(duì)路徑/param / param name="strColumn"列名/param / param name="ColumnValue"strColumn列中值
46、為ColumnValue的行均會(huì)被刪除/param / returns/returns 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.Cou
47、nt for(int 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 ds.Tables0.Rows.Count; i+ /找到符合條件的行if(ds.Tables0.Rowsis
48、trColumn.ToString(.Trim(.Equals(ColumnValuej /刪除行 ds.Tables0.Rowsi.Delete(; ds.WriteXml(GetXmlFullPath(strXmlPath; return true; catch(Exception return false; #endregion 3實(shí)例解析 (7 讀取XML 以下代碼讀取到一個(gè)沒(méi)有排序和篩選的DataSet。 DataGrid1.DataSource = OperateXmlByDataSet.GetDataSetByXml("xml/xml_xmlDB.xml" DataGrid1.DataBind(; 以下代碼讀到的數(shù)據(jù)是經(jīng)過(guò)篩選和排序的: DataGrid1.DataSource = OperateXmlByDataSet.GetDataViewByXml( "xml/xml_xmlDB.xml",
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度公共租賃住房租賃合同(含租金調(diào)整條款)
- 2025年度金融衍生品交易合同規(guī)范
- 2025年度草莓干產(chǎn)品進(jìn)出口貿(mào)易代理合同
- 2025年國(guó)際貿(mào)易實(shí)務(wù)9合同簽訂與供應(yīng)鏈管理規(guī)范
- 2025年鉛合金箱行業(yè)深度研究分析報(bào)告
- 2025年真空練泥機(jī)項(xiàng)目投資可行性研究分析報(bào)告
- 2025年度農(nóng)業(yè)科技園合作股權(quán)優(yōu)化與轉(zhuǎn)讓協(xié)議
- 2025年度公司企業(yè)收購(gòu)交接技術(shù)資料移交及保密合同范本
- 2025年度市政道路施工與養(yǎng)護(hù)服務(wù)合同范本
- 2025年加油站品牌形象設(shè)計(jì)與推廣合同
- ## 外事領(lǐng)域意識(shí)形態(tài)工作預(yù)案
- CJJ 169-2012城鎮(zhèn)道路路面設(shè)計(jì)規(guī)范
- 第八單元金屬和金屬材料單元復(fù)習(xí)題-2023-2024學(xué)年九年級(jí)化學(xué)人教版下冊(cè)
- 鋼鐵是怎樣煉成的保爾成長(zhǎng)史
- 精神科護(hù)理技能5.3出走行為的防范與護(hù)理
- 煤礦機(jī)電運(yùn)輸培訓(xùn)課件
- 采購(gòu)管理學(xué)教學(xué)課件
- 《供應(yīng)商質(zhì)量會(huì)議》課件
- 江蘇省科技企業(yè)孵化器孵化能力評(píng)價(jià)研究的中期報(bào)告
- 供應(yīng)商審核培訓(xùn)教程
- 酒精性肝硬化伴食管胃底靜脈曲張破裂出血的護(hù)理查房
評(píng)論
0/150
提交評(píng)論