大家元宵节快乐,请看下面灯谜:
用c#读写XML文件,xml文件的格式是固定的,例如<?xml version="1.0" encoding="gb2312" ?>
<root>
<msg id='pkqq' type='request' desc='文件申请'>
<date val='20110125' desc='数据日期'/>
</msg>
</root>
这样,我想快速的定位到id和val,不知道如何读取和写入呢
用c#读写XML文件,xml文件的格式是固定的,例如<?xml version="1.0" encoding="gb2312" ?>
<root>
<msg id='pkqq' type='request' desc='文件申请'>
<date val='20110125' desc='数据日期'/>
</msg>
</root>
这样,我想快速的定位到id和val,不知道如何读取和写入呢
XDocument xdoc = XDocument.Load(你的xml文件路径);
XElement xroot = xdoc.Root;
string idstr = xroot.Element("msg").Attribute("id").Value;//这个是你ID的值
string valstr = xroot.Element("msg").Element("date").Attribute("val").Value;//这个是你val的值
//写入
xroot.Element("msg").Attribute("id").Value="";
xroot.Element("msg").Element("date").Attribute("val").Value="";
XDocument xdoc = XDocument.Load(你的xml文件路径);
XElement xroot = xdoc.Root;
string idstr = xroot.Element("msg").Attribute("id").Value;//这个是你ID的值
string valstr = xroot.Element("msg").Element("date").Attribute("val").Value;//这个是你val的值
//写入
xroot.Element("msg").Attribute("id").Value="";
xroot.Element("msg").Element("date").Attribute("val").Value="";
//没有Save可不行啊
xdoc.Save(你的xml文件的路径);
http://www.cnblogs.com/sunrack/articles/1081714.html
/// 更改xml节点属性(如:《father son="修改值value"/》)
/// </summary>
/// <param name="_path">xml 保存地址</param>
/// <param name="Father">父节点名</param>
/// <param name="Son">子节点名</param>
/// <param name="_Value">修改的值</param>
public void SaveAttribute(string _path, string _father, string _son, string _value)
{
loadXml(@_path); XmlNodeList nodes = xmlDoc.SelectNodes("//" + _father);
foreach (XmlNode node in nodes)
{
if (node.Attributes[_son] != null)
{
node.Attributes[_son].Value = @_value;
break;
}
}
xmlDoc.Save(@_path);
}
/// <summary>
/// 更改xml节点名(如:《father》《son》修改值value《/son》《/father》)
/// </summary>
/// <param name="_path">xml 保存地址</param>
/// <param name="Father">父节点名</param>
/// <param name="Son">子节点名</param>
/// <param name="_Value">修改的值</param>
public void SaveNodename(string _path, string _father, string _son, string _value)
{
loadXml(@_path); XmlNodeList nodeList = xmlDoc.SelectSingleNode(_father).ChildNodes;
foreach (XmlNode xn in nodeList)
{
XmlElement xe = (XmlElement)xn;
if (xe.Name == _son)
{
xe.InnerText = @_value;
break;
}
}
xmlDoc.Save(@_path);
}