首页 新闻 会员 周边 捐助

XmlDocument 写入代码没有报错,但也没有写入,不知道那里错误

0
悬赏园豆:5 [已解决问题] 解决于 2013-03-14 08:38

写入函数如下
  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并没有任何改变,我的代码到底错在那里,请大师指正,谢谢

zhengyingcan的主页 zhengyingcan | 初学一级 | 园豆:12
提问于:2013-03-08 10:11
< >
分享
最佳答案
0

加上:xmlDoc.Save(...);

收获园豆:5
枢木 | 初学一级 |园豆:103 | 2013-03-08 10:17
其他回答(4)
0

应该是没有找到任何节点

XmlNodeList nls = xmlDoc.SelectSingleNode("/bookstore/book").ChildNodes;//获取bookstore节点的所有子节点

改为:
XmlNodeList nls = xmlDoc.SelectSingleNode("bookstore").ChildNodes;
这样写才是获取bookstore节点下的所有子节点

           

psforever | 园豆:461 (菜鸟二级) | 2013-03-08 10:19
0

 if (xn1.Name == "author")//如果找到                  
                {
                   xe2.InnerText = wstring;
                    break;//找到退出来就可以了        
                }

看了这个判断,我都不清楚这个XML文件到底是怎么配的,能把XML文件贴出来吗。估计是这个判断有问题啊

志誠 | 园豆:122 (初学一级) | 2013-03-08 10:38
0

没有调用xmlDoc.Save()方法保存到你的文件中。

Zachary_Fan | 园豆:762 (小虾三级) | 2013-03-08 10:43
0

最后写上xmlDoc.Save()方法保存到你的文件中, 你修改的东西还是文件在内存的副本而已。

刘蔡涛 | 园豆:221 (菜鸟二级) | 2013-03-14 01:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册