亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

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

2024-07-10 13:14:45
字體:
來源:轉載
供稿:網友
已知有一個XML文件(bookstore.xml)如下:
Corets, Eva
5.95
1、插入節點
往節點中插入一個節點:

復制代碼 代碼如下:


XmlDocument xmlDoc=new XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNode root=xmlDoc.SelectSingleNode("bookstore");//查找
XmlElement xe1=xmlDoc.CreateElement("book");//創建一個節點
xe1.SetAttribute("genre","李贊紅");//設置該節點genre屬性
xe1.SetAttribute("ISBN","2-3631-4");//設置該節點ISBN屬性

XmlElement xesub1=xmlDoc.CreateElement("title");
xesub1.InnerText="CS從入門到精通";//設置文本節點
xe1.AppendChild(xesub1);//添加到節點中
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);//添加到節點中
xmlDoc.Save("bookstore.xml");


結果為:
Corets, Eva
5.95
候捷
58.3
2、修改節點:
將genre屬性值為“李贊紅“的節點的genre值改為“update李贊紅”,將該節點的子節點的文本修改為“亞勝”。

復制代碼 代碼如下:


XmlNodeList nodeList=xmlDoc.SelectSingleNode("bookstore").ChildNodes;//獲取bookstore節點的所有子節點
foreach(XmlNode xn in nodeList)//遍歷所有子節點
{
XmlElement xe=(XmlElement)xn;//將子節點類型轉換為XmlElement類型
if(xe.GetAttribute("genre")=="李贊紅")//如果genre屬性值為“李贊紅”
{
xe.SetAttribute("genre","update李贊紅");//則修改該屬性為“update李贊紅”

XmlNodeList nls=xe.ChildNodes;//繼續獲取xe子節點的所有子節點
foreach(XmlNode xn1 in nls)//遍歷
{
XmlElement xe2=(XmlElement)xn1;//轉換類型
if(xe2.Name=="author")//如果找到
{
xe2.InnerText="亞勝";//則修改
break;//找到退出來就可以了
}
}
break;
}
}
xmlDoc.Save("bookstore.xml");//保存。


最后結果為:
Corets, Eva
5.95
亞勝
58.3
3、刪除節點
節點的genre屬性,刪除 節點。

復制代碼 代碼如下:


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();//刪除該節點的全部內容
}
}
xmlDoc.Save("bookstore.xml");


最后結果為:
Corets, Eva
5.95
4、顯示所有數據。

復制代碼 代碼如下:


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);//顯示子節點點文本
}
}


loading...


一個通過DataSet操作XML的類(源代碼)


復制代碼 代碼如下:


using System;
using System.Data;
using System.Xml;
using System.Windows.Forms;

//***************************************
// 作者: ∮明天去要飯
// QICQ: 305725744
// .Net群: 6370988
//
//***************************************

namespace YSTRP.Common
{
///
/// OperateXmlByDataSet 的摘要說明。
///
public class OperateXmlByDataSet
{
public OperateXmlByDataSet()
{
//
// TODO: 在此處添加構造函數邏輯
//
}

#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返回一個經排序或篩選后的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文件插入一行數據
///
/// xml文件相對路徑
/// 要插入行的列名數組,如:string[] Columns = {"name","IsMarried"};
/// 要插入行每列的值數組,如:string[] ColumnValue={"明天去要飯","false"};
/// 成功返回true,否則返回false
public static bool WriteXmlByDataSet(string strXmlPath,string[] Columns,string[] ColumnValue)
{
try
{
//根據傳入的XML路徑得到.XSD的路徑,兩個文件放在同一個目錄下
string strXsdPath = strXmlPath.Substring(0,strXmlPath.IndexOf(".")) + ".xsd";

DataSet ds = new DataSet();
//讀xml架構,關系到列的數據類型
ds.ReadXmlSchema(GetXmlFullPath(strXsdPath));
ds.ReadXml(GetXmlFullPath(strXmlPath));
DataTable dt = ds.Tables[0];
//在原來的表格基礎上創建新行
DataRow newRow = dt.NewRow();

//循環給一行中的各個列賦值
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文件路徑
/// 列名數組
/// 列值數組
/// 條件列名
/// 條件列值
///
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架構,關系到列的數據類型
ds.ReadXmlSchema(GetXmlFullPath(strXsdPath));
ds.ReadXml(GetXmlFullPath(strXmlPath));

//先判斷行數
if(ds.Tables[0].Rows.Count > 0)
{
for(int i=0; i< ds.Tables[0].Rows.Count; i++)
{
//如果當前記錄為符合Where條件的記錄
if(ds.Tables[0].Rows[i][strWhereColumnName].ToString().Trim().Equals(strWhereColumnValue))
{
//循環給找到行的各列賦新值
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以實現刪除指定行
///
///
/// 要刪除的行在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));

//先判斷行數
if(ds.Tables[0].Rows.Count > 0)
{
//判斷行多還是刪除的值多,多的for循環放在里面
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));
//如果記錄條數大于0
if(ds.Tables[0].Rows.Count > 0)
{
//移除所有記錄
ds.Tables[0].Rows.Clear();
}
//重新寫入,這時XML文件中就只剩根節點了
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...

您可能感興趣的文章:

當前1/2頁 

Tags: XML

上一篇:官網 Ext direct包中.NET版的問題

下一篇:asp.net+jquery ajax無刷新登錄的實現方法

相關文章

文章評論

最 近 更 新

熱 點 排 行

關于我們 - 廣告合作 - 聯系我們 - 免責聲明 - 網站地圖 - 投訴建議 - 在線投稿

CopyRight © 2006-2013 腳本之家 JB51.Net , All Rights Reserved. 蘇ICP備12007328號-1
業務QQ:461478385 QQ群:14624678、36345889

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩欧美国产一区二区| 欧美香蕉大胸在线视频观看| 亚洲bt欧美bt日本bt| 91精品国产自产在线老师啪| 91在线视频九色| 国产精品av电影| 国产精品96久久久久久| 久久精品中文字幕一区| 欧美视频在线观看 亚洲欧| 国产精品久久久久久av福利软件| 97av在线视频免费播放| 国产精品成人aaaaa网站| 色老头一区二区三区在线观看| 欧美极品xxxx| 91中文精品字幕在线视频| 性欧美在线看片a免费观看| 久久精品人人做人人爽| 热久久美女精品天天吊色| 亚洲精品aⅴ中文字幕乱码| 777午夜精品福利在线观看| 国产精品成av人在线视午夜片| 国语自产精品视频在线看| 91精品国产高清自在线看超| 亚洲经典中文字幕| 日韩欧美在线免费观看| 久久亚洲精品中文字幕冲田杏梨| 奇米成人av国产一区二区三区| 国产日韩欧美日韩大片| www亚洲精品| 亚洲女人天堂成人av在线| 久久精品亚洲94久久精品| 国产精品扒开腿做爽爽爽的视频| 亚洲欧美国产一区二区三区| 欧美成人精品一区二区| 欧美俄罗斯性视频| 在线观看亚洲区| 久久精品成人动漫| 日韩欧美在线字幕| 草民午夜欧美限制a级福利片| 国产精品一区二区三区免费视频| 一区二区欧美激情| 91精品久久久久久久久久入口| 国产美女久久精品| 亚洲国产精品推荐| 国产精品激情av电影在线观看| 在线观看国产精品日韩av| 国产精品一区二区久久久久| 亚洲成人动漫在线播放| 亚洲欧美日韩精品久久| 激情成人在线视频| 国产精品美女主播| 国产精品日韩在线播放| 狠狠色狠狠色综合日日小说| 国产午夜精品久久久| 亚洲肉体裸体xxxx137| 日韩国产欧美精品在线| 欧美极品少妇与黑人| 久久91精品国产91久久跳| 亚洲天堂免费视频| 在线观看国产精品91| 欧美黑人极品猛少妇色xxxxx| 欧美激情极品视频| 一区二区三区四区精品| 色综合亚洲精品激情狠狠| 91国语精品自产拍在线观看性色| 狠狠色噜噜狠狠狠狠97| 日韩电视剧免费观看网站| 欧美一区二粉嫩精品国产一线天| 精品成人在线视频| 91在线播放国产| 欧美性猛交xxxx久久久| 欧美色图在线视频| 成人在线精品视频| 国产在线观看91精品一区| 久久久久久久成人| 国产99久久久欧美黑人| 久久久久久久影院| 国产精品欧美久久久| 久久国产加勒比精品无码| 一区二区欧美久久| 欧美黑人巨大xxx极品| 国产91在线播放| 精品国产精品三级精品av网址| 国产精品网红直播| 欧美精品免费在线观看| 中文字幕日韩欧美| 日韩欧美在线看| 久久精品色欧美aⅴ一区二区| 国产日韩在线视频| xxx一区二区| 欧美激情一区二区三区高清视频| 久久久久久久久久久免费精品| 日韩精品在线免费观看视频| 国产精品丝袜高跟| 欧美在线一区二区视频| 91亚洲国产成人精品性色| 全亚洲最色的网站在线观看| 国产一区二区三区在线| 日韩av中文字幕在线免费观看| 欧美成人中文字幕在线| 亚洲欧美精品在线| 亚洲黄页网在线观看| 狠狠综合久久av一区二区小说| 国产精品久久久久久久久久东京| 久久夜色撩人精品| 91国产视频在线| 九九久久综合网站| 成人网在线免费看| 久久精品电影网站| 国产91精品最新在线播放| 欧美性生交大片免费| 精品国产欧美成人夜夜嗨| 北条麻妃在线一区二区| 精品动漫一区二区| 日韩不卡中文字幕| 国产在线精品成人一区二区三区| 亚洲免费中文字幕| yw.139尤物在线精品视频| 欧美日韩黄色大片| 欧美视频在线免费看| 欧美精品在线观看91| 色婷婷av一区二区三区在线观看| 亚洲精品国产成人| 亚洲第一色中文字幕| 久久久国产视频| 亚洲男人天堂手机在线| 亚洲人成啪啪网站| 亚洲欧美国产一区二区三区| 欧美裸体xxxx极品少妇软件| 国产精品稀缺呦系列在线| 中文字幕无线精品亚洲乱码一区| 亚洲免费av电影| 夜夜嗨av一区二区三区四区| 亚洲性生活视频在线观看| 日韩动漫免费观看电视剧高清| 亚洲欧美日本精品| 久久久国产精品一区| 国产精品亚洲自拍| 欧美大全免费观看电视剧大泉洋| 国产精品久久久久久久久久99| 欧美日韩中文字幕在线视频| 国产热re99久久6国产精品| 欧美午夜激情小视频| 一区二区欧美激情| 欧美日韩午夜视频在线观看| 国产日韩在线播放| 国产精品户外野外| 日韩成人网免费视频| 中文字幕欧美日韩在线| 亲爱的老师9免费观看全集电视剧| 97精品国产91久久久久久| 欧美激情va永久在线播放| 欧美日韩中文在线观看| 成人国产亚洲精品a区天堂华泰| 色综合91久久精品中文字幕| 欧美极品美女视频网站在线观看免费| 精品久久久中文| 欧美亚洲国产视频| 欧美性20hd另类| 精品福利在线观看| 亚洲福利视频免费观看| 久久好看免费视频| 国产精品免费一区二区三区都可以| 亚洲国产成人久久综合|