一区二区久久-一区二区三区www-一区二区三区久久-一区二区三区久久精品-麻豆国产一区二区在线观看-麻豆国产视频

C# XML操作 代碼大全(讀XML,寫XML,更新,刪除節(jié)點,與dataset結(jié)合等)第1/2頁

已知有一個XML文件(bookstore.xml)如下:
Corets, Eva
5.95
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=xmlDoc.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é)點中
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=(XmlElement)xn;//將子節(jié)點類型轉(zhuǎn)換為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=(XmlElement)xn1;//轉(zhuǎn)換類型
if(xe2.Name=="author")//如果找到
{
xe2.InnerText="亞勝";//則修改
break;//找到退出來就可以了
}
}
break;
}
}
xmlDoc.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=(XmlElement)xn;
if(xe.GetAttribute("genre")=="fantasy")
{
xe.RemoveAttribute("genre");//刪除genre屬性
}
else if(xe.GetAttribute("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=(XmlElement)xnf;
Console.WriteLine(xe.GetAttribute("genre"));//顯示屬性值
Console.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;
using System.Windows.Forms;

//***************************************
// 作者: ∮明天去要飯
// QICQ: 305725744
// .NET群: 6370988
// http://blog.csdn.NET/kgdiwss
//***************************************

namespace YSTRP.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(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返回一個經(jīng)排序或篩選后的DataView
///
///
/// 篩選條件,如:"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.Tables[0]);
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 = {"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 DataSet();
//讀xml架構(gòu),關(guān)系到列的數(shù)據(jù)類型
ds.ReadXmlSchema(GetXmlFullPath(strXsdPath));
ds.ReadXml(GetXmlFullPath(strXmlPath));
DataTable dt = ds.Tables[0];
//在原來的表格基礎(chǔ)上創(chuàng)建新行
DataRow newRow = dt.NewRow();

//循環(huán)給一行中的各個列賦值
for(int i=0; i< Columns.Length; i++)
{
newRow[Columns[i]] = ColumnValue[i];
}
dt.Rows.Add(newRow);
dt.AcceptChanges();
ds.AcceptChanges();

ds.WriteXml(GetXmlFullPath(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
{
string strXsdPath = strXmlPath.Substring(0,strXmlPath.IndexOf(".")) + ".xsd";

DataSet ds = new DataSet();
//讀xml架構(gòu),關(guān)系到列的數(shù)據(jù)類型
ds.ReadXmlSchema(GetXmlFullPath(strXsdPath));
ds.ReadXml(GetXmlFullPath(strXmlPath));

//先判斷行數(shù)
if(ds.Tables[0].Rows.Count > 0)
{
for(int i=0; i< ds.Tables[0].Rows.Count; i++)
{
//如果當(dāng)前記錄為符合Where條件的記錄
if(ds.Tables[0].Rows[i][strWhereColumnName].ToString().Trim().Equals(strWhereColumnValue))
{
//循環(huán)給找到行的各列賦新值
for(int j=0; j < Columns.Length; j++)
{
ds.Tables[0].Rows[i][Columns[j]] = ColumnValue[j];
}
//更新DataSet
ds.AcceptChanges();
//重新寫入XML文件
ds.WriteXml(GetXmlFullPath(strXmlPath));
return true;
}
}

}
return false;
}
catch(Exception)
{
return false;
}
}
#endregion


#region DeleteXmlRowByIndex
///
/// 通過刪除DataSet中iDeleteRow這一行,然后重寫Xml以實現(xiàn)刪除指定行
///
///
/// 要刪除的行在DataSet中的Index值
public static bool DeleteXmlRowByIndex(string strXmlPath,int iDeleteRow)
{
try
{
DataSet ds = new DataSet();
ds.ReadXml(GetXmlFullPath(strXmlPath));
if(ds.Tables[0].Rows.Count > 0)
{
//刪除符號條件的行
ds.Tables[0].Rows[iDeleteRow].Delete();
}
ds.WriteXml(GetXmlFullPath(strXmlPath));
return true;
}
catch(Exception)
{
return false;
}
}
#endregion


#region DeleteXmlRows
///
/// 刪除strColumn列中值為ColumnValue的行
///
/// xml相對路徑
/// 列名
/// strColumn列中值為ColumnValue的行均會被刪除
///
public static bool DeleteXmlRows(string strXmlPath,string strColumn,string[] ColumnValue)
{
try
{
DataSet ds = new DataSet();
ds.ReadXml(GetXmlFullPath(strXmlPath));

//先判斷行數(shù)
if(ds.Tables[0].Rows.Count > 0)
{
//判斷行多還是刪除的值多,多的for循環(huán)放在里面
if(ColumnValue.Length > ds.Tables[0].Rows.Count)
{
for(int i=0; i < ds.Tables[0].Rows.Count; i++)
{
for(int j=0; j < ColumnValue.Length; j++)
{
if(ds.Tables[0].Rows[i][strColumn].ToString().Trim().Equals(ColumnValue[j]))
{
ds.Tables[0].Rows[i].Delete();
}
}
}
}
else
{
for(int j=0; j < ColumnValue.Length; j++)
{
for(int i=0; i < ds.Tables[0].Rows.Count; i++)
{
if(ds.Tables[0].Rows[i][strColumn].ToString().Trim().Equals(ColumnValue[j]))
{
ds.Tables[0].Rows[i].Delete();
}
}
}
}
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.Tables[0].Rows.Count > 0)
{
//移除所有記錄
ds.Tables[0].Rows.Clear();
}
//重新寫入,這時XML文件中就只剩根節(jié)點了
ds.WriteXml(GetXmlFullPath(strXmlPath));
return true;
}
catch(Exception)
{
return false;
}
}
#endregion


#region GetXmlFullPath
///
/// 返回完整路徑
///
/// Xml的路徑
///
public static string GetXmlFullPath(string strPath)
{
if(strPath.IndexOf(":") > 0)
{
return strPath;
}
else
{
return Application.StartupPath + strPath;
}
}
#endregion
}
}

loading...

AspNet技術(shù)C# XML操作 代碼大全(讀XML,寫XML,更新,刪除節(jié)點,與dataset結(jié)合等)第1/2頁,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 久久精品久久久久久久久人 | 亚洲一区不卡视频 | 日本又黄又硬又粗好爽视频免费 | 2021成人国产精品 | 精品国内自产拍在线视频 | 国产亚洲综合色就色 | 高清不卡免费一区二区三区 | 国产黄色免费在线观看 | 伊人久久网国产伊人 | 激情综合色综合久久综合 | 国产精品久久久亚洲 | 婷婷激情网站 | 久久亚洲私人国产精品 | 国产在线91观看免费观看 | 丁香六月婷婷七月激情 | 国产免费一区二区三区 | 视频国产精品 | 国产一级鲁丝片 | 四虎最新紧急入口 | 国产精品美女在线 | 日本不卡一区 | 午夜丁香婷婷 | 五月婷婷丁香在线观看 | 国产波波社区精品视频 | 国产成人精品s8p视频 | 国语对白一区二区三区 | 高清一区二区三区 | 国产精品资源网站在线观看 | 九九午夜 | 国色天香精品亚洲精品 | 国产视频一区二区在线观看 | 日本精品1在线区 | 国产福利精品在线观看 | 国产高清视频免费观看 | 伊人久久大香线蕉综合热线 | 韩国一级永久免费观看网址 | 日韩激情视频网站 | 免费精品在线视频 | 免费国产成高清人在线视频 | 国产成人福利免费观看 | 99久久精品免费看国产四区 |