用C#读写XML文件 C#XML读写 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/duanzi_peng/article/details/24018431 读/// <summary> /// 根据节点名称 读取PersonalAccountSettings.xml中节点的InnerText值 /// </summary> /// <param name="nodeName">节点名称</param> /// <returns>节点值</returns> public static string GetPersonalSettings(string nodeName) { string nodeText = String.Empty; try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(System.Windows.Forms.Application.StartupPath + "\\Configuration\\PersonalAccountSettings.xml"); XmlNode xn = xmlDoc.SelectSingleNode("root//" + nodeName + ""); nodeText = xn.InnerText; } catch { } return nodeText; }写/// <summary> /// 根据节点名称 设置PersonalAccountSettings.xml中节点的值 /// </summary> /// <param name="nodeName">节点名称</param> /// <param name="nodeValue">节点值</param> public static void SetPersonalSettings(string nodeName, string nodeValue) { try { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(System.Windows.Forms.Application.StartupPath + "\\Configuration\\PersonalAccountSettings.xml"); XmlNode xn = xmlDoc.SelectSingleNode("root//" + nodeName + ""); XmlNode root = xmlDoc.SelectSingleNode("root");//查找根节点 if (null == xn) { XmlElement element = xmlDoc.CreateElement(nodeName); element.InnerText = nodeValue; root.AppendChild(element); } else { xn.InnerText = nodeValue; } xmlDoc.Save(System.Windows.Forms.Application.StartupPath + "\\Configuration\\PersonalAccountSettings.xml"); } catch { } } linq 只是一种解决方式么,可以自己百度百度 常规的方法http://www.cnblogs.com/zhangyf/archive/2009/06/03/1495459.html <?xml version="1.0" encoding="utf-8"?><root> <LastLoginAccount>0002</LastLoginAccount></root> msdn看看,或者找本入门书看看。 用linq to xml操作XML文件很方便的啊 http://blog.csdn.net/happy09li/article/details/7460521 <?xml version="1.0" encoding="utf-8"?><Base> <Continent name="亚洲"> <Country name="中国"> </Country> <Country name="日本"> </Country> </Continent> <Continent name="欧洲"> <Country name="法国"> </Country> </Continent> <Continent name="非洲"> </Continent></Base> DataSet ds = new DataSet(); ds.ReadXml("test.xml"); string s = ds.Tables[0].Rows[0][1].ToString();//亚洲 string s1 = ds.Tables[0].Rows[1][1].ToString();//欧洲 string s2 = ds.Tables[0].Rows[2][1].ToString();//非洲 string ss = ds.Tables[1].Rows[0][0].ToString();//中国 string ss1 = ds.Tables[1].Rows[1][0].ToString();//日本 string ss2 = ds.Tables[1].Rows[2][0].ToString();//法国 C#读写XML文件示例//读取XML文件数据 //调用公共类中的GetData方法,读取XML文件中的数据 private object GetData(DataTable dt,string sColumnName,string dColumnName,string sValue) { DataRow[] rows = dt.Select(sColumnName + "='" + sValue + "'"); if(rows.Length <= 0) return null; return rows[0][dColumnName]; }//codego.net/tags/23/1///调用公共类GetData显示数据public static DataTable GetData(string path,string tableName,params XmlParamter[] param) { //创建XmlDocument类的实例 XmlDocument xmldoc = new XmlDocument(); //调用XmlDocument类中的Load()方法加载XML文件 xmldoc.Load(path); //创建DataTable类型的变量dt DataTable dt = new DataTable(); ///获取根节点 XmlNode rootNode = xmldoc.SelectSingleNode("/" + tableName + "s"); //判断节点及其子节点是否为空,为空将返空值 if(rootNode == null) return null; if(rootNode.ChildNodes.Count == 0) return null; ///创建保存记录的数据列 foreach(XmlAttribute attr in rootNode.ChildNodes[0].Attributes) { dt.Columns.Add(new DataColumn(attr.Name,typeof(string))); } ///创建获取数据节点的XPath string xmlPath = "/" + tableName + "s/" + tableName; int operationCount = 0; StringBuilder operation = new StringBuilder(); foreach(XmlParamter p in param) { if(p.Direction == ParameterDirection.Insert || p.Direction == ParameterDirection.Update) { continue; } ///创建条件表达式 switch(p.Direction) { case ParameterDirection.Equal: operation.Append("@" + p.Name + "='" + p.Value + "'"); break; case ParameterDirection.NotEqual: operation.Append("@" + p.Name + "<>'" + p.Value + "'"); break; case ParameterDirection.Little: operation.Append("@" + p.Name + "<'" + p.Value + "'"); break; case ParameterDirection.Great: operation.Append("@" + p.Name + ">'" + p.Value + "'"); break; case ParameterDirection.Like: operation.Append("contains(@" + p.Name + ",'" + p.Value + "')"); break; default: break; } operationCount++; operation.Append(" and "); } if(operationCount > 0) { ///修正XPath operation.Remove(operation.Length - 5,5); xmlPath += "[" + operation.ToString() + "]"; } //获取XML节点下的所有节点 XmlNodeList nodeList = xmldoc.SelectNodes(xmlPath); ///遍历所有节点,并添加节点的数据 foreach(XmlNode node in nodeList) { DataRow row = dt.NewRow(); foreach(DataColumn column in dt.Columns) { ///读取每一个属性 row[column.ColumnName] = node.Attributes[column.ColumnName].Value; } dt.Rows.Add(row); } return dt; }//向XML文件写入数据public int AddTitle(string name,string body,int userID,int boardID,byte state) { XmlParamter[] param = { XmlDatabase.CreateInsertParameter("Name",name), XmlDatabase.CreateInsertParameter("Body",body), XmlDatabase.CreateInsertParameter("UserID",userID.ToString()), XmlDatabase.CreateInsertParameter("BoardID",boardID.ToString()), XmlDatabase.CreateInsertParameter("CreateDate",DateTime.Now.ToShortDateString()), XmlDatabase.CreateInsertParameter("VisitNum","0"), XmlDatabase.CreateInsertParameter("ReplyNum","0"), XmlDatabase.CreateInsertParameter("State",state.ToString()) };//调用公共类中的AddXmlData向XML数据库中添加数据 return (XmlDatabase.AddXmlData(XmlBBS.TitleFilePath,TitleTableName,param)); }//添加数据 public static int AddXmlData(string path,string tableName,params XmlParamter[] param) { //创建XmlDocument类的实例 XmlDocument xmldoc = new XmlDocument(); //调用XmlDocument类中的Load()方法加载XML文件 xmldoc.Load(path); ///选择根节点 XmlNode node = xmldoc.SelectSingleNode("/" + tableName + "s"); if(node == null) return -1; ///创建新记录的ID值 int newID; if (node.LastChild == null) { newID = 1; } else { newID = DataTypeConvert.ConvertToInt(node.LastChild.Attributes["ID"].Value) + 1; } if(newID < 1) return -1; ///创建一个新节点 XmlNode newNode = xmldoc.CreateNode(XmlNodeType.Element, tableName, null); if(newNode == null)return -1; ///添加ID的值 newNode.Attributes.Append(CreateNodeAttribute(xmldoc, "ID", newID.ToString())); ///添加新节点的属性 foreach(XmlParamter p in param) { newNode.Attributes.Append(CreateNodeAttribute(xmldoc, p.Name, p.Value)); } ///将新节点追加到根节点中 node.AppendChild(newNode); //保存XML文档 xmldoc.Save(path); return newID; } c# 开发excel自定义函数怎么注册 C# 中是否有类似C++的CAsyncSocket的类? 求助SSO,单点登录 帮我解释一下下面的代码 [求助]Repeater嵌套RadioButtonList读数据库问题 跨线程全局变量怎样递增? 求一个windows服务程序的线程框架! 注销变成了关机了! 删除文件一问 C#用7z.exe进行解压问题解决 获取word内容后word文件就变成了被保护无法编辑 如何捕获ListView的scroll bar滚动消息
/// <summary>
/// 根据节点名称 读取PersonalAccountSettings.xml中节点的InnerText值
/// </summary>
/// <param name="nodeName">节点名称</param>
/// <returns>节点值</returns>
public static string GetPersonalSettings(string nodeName)
{
string nodeText = String.Empty;
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(System.Windows.Forms.Application.StartupPath + "\\Configuration\\PersonalAccountSettings.xml");
XmlNode xn = xmlDoc.SelectSingleNode("root//" + nodeName + "");
nodeText = xn.InnerText;
}
catch
{ }
return nodeText;
}
写
/// <summary>
/// 根据节点名称 设置PersonalAccountSettings.xml中节点的值
/// </summary>
/// <param name="nodeName">节点名称</param>
/// <param name="nodeValue">节点值</param>
public static void SetPersonalSettings(string nodeName, string nodeValue)
{
try
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(System.Windows.Forms.Application.StartupPath + "\\Configuration\\PersonalAccountSettings.xml");
XmlNode xn = xmlDoc.SelectSingleNode("root//" + nodeName + "");
XmlNode root = xmlDoc.SelectSingleNode("root");//查找根节点
if (null == xn)
{
XmlElement element = xmlDoc.CreateElement(nodeName);
element.InnerText = nodeValue;
root.AppendChild(element);
}
else
{
xn.InnerText = nodeValue;
}
xmlDoc.Save(System.Windows.Forms.Application.StartupPath + "\\Configuration\\PersonalAccountSettings.xml");
}
catch
{ }
}
http://www.cnblogs.com/zhangyf/archive/2009/06/03/1495459.html
<root>
<LastLoginAccount>0002</LastLoginAccount>
</root>
<Base>
<Continent name="亚洲">
<Country name="中国">
</Country>
<Country name="日本">
</Country>
</Continent>
<Continent name="欧洲">
<Country name="法国">
</Country>
</Continent>
<Continent name="非洲">
</Continent>
</Base>
DataSet ds = new DataSet();
ds.ReadXml("test.xml");
string s = ds.Tables[0].Rows[0][1].ToString();//亚洲
string s1 = ds.Tables[0].Rows[1][1].ToString();//欧洲
string s2 = ds.Tables[0].Rows[2][1].ToString();//非洲
string ss = ds.Tables[1].Rows[0][0].ToString();//中国
string ss1 = ds.Tables[1].Rows[1][0].ToString();//日本
string ss2 = ds.Tables[1].Rows[2][0].ToString();//法国
//读取XML文件数据
//调用公共类中的GetData方法,读取XML文件中的数据
private object GetData(DataTable dt,string sColumnName,string dColumnName,string sValue)
{
DataRow[] rows = dt.Select(sColumnName + "='" + sValue + "'");
if(rows.Length <= 0) return null;
return rows[0][dColumnName];
}//codego.net/tags/23/1/
//调用公共类GetData显示数据
public static DataTable GetData(string path,string tableName,params XmlParamter[] param)
{
//创建XmlDocument类的实例
XmlDocument xmldoc = new XmlDocument();
//调用XmlDocument类中的Load()方法加载XML文件
xmldoc.Load(path);
//创建DataTable类型的变量dt
DataTable dt = new DataTable();
///获取根节点
XmlNode rootNode = xmldoc.SelectSingleNode("/" + tableName + "s");
//判断节点及其子节点是否为空,为空将返空值
if(rootNode == null) return null;
if(rootNode.ChildNodes.Count == 0) return null;
///创建保存记录的数据列
foreach(XmlAttribute attr in rootNode.ChildNodes[0].Attributes)
{
dt.Columns.Add(new DataColumn(attr.Name,typeof(string)));
}
///创建获取数据节点的XPath
string xmlPath = "/" + tableName + "s/" + tableName;
int operationCount = 0;
StringBuilder operation = new StringBuilder();
foreach(XmlParamter p in param)
{
if(p.Direction == ParameterDirection.Insert
|| p.Direction == ParameterDirection.Update)
{
continue;
}
///创建条件表达式
switch(p.Direction)
{
case ParameterDirection.Equal:
operation.Append("@" + p.Name + "='" + p.Value + "'");
break;
case ParameterDirection.NotEqual:
operation.Append("@" + p.Name + "<>'" + p.Value + "'");
break;
case ParameterDirection.Little:
operation.Append("@" + p.Name + "<'" + p.Value + "'");
break;
case ParameterDirection.Great:
operation.Append("@" + p.Name + ">'" + p.Value + "'");
break;
case ParameterDirection.Like:
operation.Append("contains(@" + p.Name + ",'" + p.Value + "')");
break;
default: break;
}
operationCount++;
operation.Append(" and ");
}
if(operationCount > 0)
{ ///修正XPath
operation.Remove(operation.Length - 5,5);
xmlPath += "[" + operation.ToString() + "]";
}
//获取XML节点下的所有节点
XmlNodeList nodeList = xmldoc.SelectNodes(xmlPath);
///遍历所有节点,并添加节点的数据
foreach(XmlNode node in nodeList)
{
DataRow row = dt.NewRow();
foreach(DataColumn column in dt.Columns)
{ ///读取每一个属性
row[column.ColumnName] = node.Attributes[column.ColumnName].Value;
}
dt.Rows.Add(row);
}
return dt;
}
//向XML文件写入数据
public int AddTitle(string name,string body,int userID,int boardID,byte state)
{
XmlParamter[] param = {
XmlDatabase.CreateInsertParameter("Name",name),
XmlDatabase.CreateInsertParameter("Body",body),
XmlDatabase.CreateInsertParameter("UserID",userID.ToString()),
XmlDatabase.CreateInsertParameter("BoardID",boardID.ToString()),
XmlDatabase.CreateInsertParameter("CreateDate",DateTime.Now.ToShortDateString()),
XmlDatabase.CreateInsertParameter("VisitNum","0"),
XmlDatabase.CreateInsertParameter("ReplyNum","0"),
XmlDatabase.CreateInsertParameter("State",state.ToString())
};
//调用公共类中的AddXmlData向XML数据库中添加数据
return (XmlDatabase.AddXmlData(XmlBBS.TitleFilePath,TitleTableName,param));
}
//添加数据 public static int AddXmlData(string path,string tableName,params XmlParamter[] param)
{
//创建XmlDocument类的实例
XmlDocument xmldoc = new XmlDocument();
//调用XmlDocument类中的Load()方法加载XML文件
xmldoc.Load(path);
///选择根节点
XmlNode node = xmldoc.SelectSingleNode("/" + tableName + "s");
if(node == null) return -1;
///创建新记录的ID值
int newID;
if (node.LastChild == null)
{
newID = 1;
}
else
{
newID = DataTypeConvert.ConvertToInt(node.LastChild.Attributes["ID"].Value) + 1;
}
if(newID < 1) return -1;
///创建一个新节点
XmlNode newNode = xmldoc.CreateNode(XmlNodeType.Element, tableName, null);
if(newNode == null)return -1;
///添加ID的值
newNode.Attributes.Append(CreateNodeAttribute(xmldoc, "ID", newID.ToString()));
///添加新节点的属性
foreach(XmlParamter p in param)
{
newNode.Attributes.Append(CreateNodeAttribute(xmldoc, p.Name, p.Value));
}
///将新节点追加到根节点中
node.AppendChild(newNode);
//保存XML文档
xmldoc.Save(path);
return newID;
}