写入函数如下
public static void writexml(string wstring)//写入
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("bookstore.xml");
XmlNodeList nls = xmlDoc.SelectSingleNode("/bookstore/book").ChildNodes;//获取bookstore节点的所有子节点
foreach (XmlNode xn1 in nls)//遍历
{
XmlElement xe2 = (XmlElement)xn1;//将子节点类型转换为XmlElement类型
if (xn1.Name == "author")//如果找到
{
xe2.InnerText = wstring;
break;//找到退出来就可以了
}
}
}
执行代码如下
string Desconstring = "1225555558745";
Maticsoft.DBUtility.PubConstant.writexml(Desconstring);
MessageBox.Show("配置完成");
执行代码 没有报错,但author 的innertext并没有任何改变,我的代码到底错在那里,请大师指正,谢谢
加上:xmlDoc.Save(...);
应该是没有找到任何节点
XmlNodeList nls = xmlDoc.SelectSingleNode("/bookstore/book").ChildNodes;//获取bookstore节点的所有子节点
改为:
XmlNodeList nls = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
这样写才是获取bookstore节点下的所有子节点
if (xn1.Name == "author")//如果找到
{
xe2.InnerText = wstring;
break;//找到退出来就可以了
}
看了这个判断,我都不清楚这个XML文件到底是怎么配的,能把XML文件贴出来吗。估计是这个判断有问题啊
没有调用xmlDoc.Save()方法保存到你的文件中。
最后写上xmlDoc.Save()方法保存到你的文件中, 你修改的东西还是文件在内存的副本而已。