写了一个简单的类
public void updata_xml(string fillname, string zhujiedian,string names,string values)//修改及节点
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fillname);
XmlNode xns = xmlDoc.SelectSingleNode("user_all");//查找要修改的节点
XmlNodeList xnl = xns.ChildNodes;//取出所有的子节点
foreach (XmlNode xn in xnl)
{
XmlElement xe = (XmlElement)xn;//将节点转换一下类型
if (xe.Name == zhujiedian)//判断该子节点是否是要查找的节点
{
XmlNodeList xnl2 = xe.ChildNodes;//取出该子节点下面的所有元素
foreach (XmlNode xn2 in xnl2)
{
XmlElement xe2 = (XmlElement)xn2;//转换类型
if (xe2.Name == names)//判断是否是要查找的元素
{
xe2.InnerText = values;//设置该元素的值
break;
}
}
break;
}
}
xmlDoc.Save(fillname);//保存。
}
public string readtext_xml(string fillname, string zhujiedian, string names)//读取节点
{
string sda = null;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(fillname);
XmlNode xn = xmlDoc.SelectSingleNode("user_all");
XmlNodeList xnl = xn.ChildNodes;
foreach (XmlNode xnf in xnl)
{
XmlElement xe = (XmlElement)xnf;
if (xe.Name == zhujiedian)//判断该子节点是否是要查找的节点
{
XmlNodeList xnl2 = xe.ChildNodes;//取出该子节点下面的所有元素
foreach (XmlNode xn2 in xnl2)
{
XmlElement xe2 = (XmlElement)xn2;//转换类型
if (xe2.Name == names)//判断是否是要查找的元素
{
sda=xn2.InnerText;
}
}
break;
}
XmlNodeList xnf1 = xe.ChildNodes;
foreach (XmlNode xn2 in xnf1)
{
Console.WriteLine(xn2.InnerText);//显示子节点点文本
}
Console.WriteLine();
}
return sda;
}
实际应用
private void button1_Click(object sender, EventArgs e)
{
xmlss.updata_xml("XMLFile1.xml", "Key_root", "key", "0AD373D8");
}
private void button2_Click(object sender, EventArgs e)
{
textBox1.Text= xmlss.readtext_xml("XMLFile1.xml", "Key_root", "key");
}
XMl文件
<?xml version="1.0" encoding="utf-8"?>
<user_all>
<longend>
<name>hang</name>
<password>123456</password>
</longend>
<mysql_cenfing>
<IP>192.168.0.2</IP>
<IP_post>33306</IP_post>
<name>root</name>
<word>123456</word>
<database_sheet>variable_value_new</database_sheet>
</mysql_cenfing>
<Key_root>
<key>0AD373D88</key>
</Key_root>
</user_all>
源码链接
源码下载