日期:2014-05-18  浏览次数:20838 次

更改XML内容问题?
我有一个下接列表,是绑定的XML数据,要实现按所选择的内容不同,更改XML其他列的值,如何实现?
即要更改db内容为abc
我在网上搜的代码如下(不能通过):
  XmlDocument   doc   =   new   XmlDocument();

  //XML路径,可以得到                            
  string   strPath;
  string   strConn   =   "abc ";
  doc.Load(strPath);
  string   ss   =   this.combox.SelectedValue.ToString();
  XmlNode   xmlNode   =   doc.SelectSingleNode( "dblink[@id= ' "   +   ss   +   " '] ");
  xmlNode.Attributes[ "db "].Value   =   strConn;
  doc.Save(strPath);
_________________________________________________
XML信息如下:

<dblink>
<id> 10 </id>                                  
<name> 人员信息 </name>
<db> </db>                
</dblink>

------解决方案--------------------
你哪是属性选择,而不是节点

------解决方案--------------------
xmlNode.Attributes[ "db "].Value = strConn;//会出错...原因见楼上...
------解决方案--------------------
两种改法,第一,改xml结构为
<dblink id= "10 " name= "人员信息 " db= " ">

</dblink>
这种结构可以不用改代码
第二种.改代码
大体如下:
XmlNodeList xmlNodeList = doc.SelectNodes( "/dblink/db ");//前提是只有一个db,不然最后先//找id列表,判断=10后再找相邻节点db,再改变值
if(xmlNodeList !=null && xmlNodeList .Count> 0)
{
xmlNodeList[0].InnerText= strConn;
}