你的XML的结构是怎么样的呢?
请检查是否 XmlNodeList xnl=xmldoc.SelectSingleNode("library").ChildNodes;
根本就没有找到任何记录?

解决方案 »

  1.   

    <?xml version="1.0"?>
    <library>
      <book1>
        <Title>c#</Title>
        <Author>celina</Author>
      </book1>
    </library>XmlNodeList xnl=xmldoc.SelectSingleNode("library").ChildNodes;
    这句我在删除里也用过,没问题的啊
      

  2.   

    SelectSingleNode的参数是xpath表达式, 你用/library看看?
      

  3.   

    xe.GetAttribute("Title")==Value1
    title不是属性啊,怎么用GetAttribute?
    应该用Xpath写一下选择语句吧
      

  4.   

    string sPath="/library/" + NodeName;XmlNodeList xnl=xmldoc.SelectSingleNode("library").ChildNodes;foreach(XmlNode xn in xnl)//遍历所有子节点
    {
    if(xn.InnerText==Value1)
    xn.InnerText=Value2;
    }  //保存语句要写在循环的后面
      xmldoc.Save(FileName);//保存
      

  5.   

    我把代码写成现在这样,还是没有修改成功:(public class Edit
      {
         public void  edit(string FileName,string NodeName,string  Value1,string Value2)
    {
               XmlDocument xmldoc=new XmlDocument();

                      xmldoc.Load(FileName); string sPath="/library/" + NodeName; XmlNodeList xnl=xmldoc.SelectSingleNode("library").ChildNodes; foreach(XmlNode xe in xnl)//遍历所有子节点
    {
                XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型 if(xe.InnerText==Value1)  {xe.InnerText=Value2;}                  }                   xmldoc.Save(FileName);
    }
    }
      

  6.   

    http://blog.csdn.net/lizanhong/archive/2004/06/23/24374.aspx
      

  7.   

    edit code following:
    public void  edit(string FileName,string NodeName,string  Value1,string Value2)
    {
    XmlDocument xmldoc=new XmlDocument();
    xmldoc.Load(FileName);

    string sPath="/library/" + NodeName + "/Title";
    XmlNode titleNode = xmldoc.SelectSingleNode(sPath); if (titleNode != null)
    {
    if (titleNode.InnerText == Value1)
    {
    titleNode.InnerText = Value2;
    xmldoc.Save(FileName);
    }
    }
    else
    {
    // cannot find the special node
    }
    }
      

  8.   


    感谢各位~~~~~~成功:
    public class Edit
    {
      public bool  edit(string FileName,string NodeName,string Value1,string Value2)
        {
    XmlDocument xmldoc=new XmlDocument();
    xmldoc.Load(FileName);
    XmlNodeList xnl=xmldoc.SelectSingleNode("library").ChildNodes;
    foreach(XmlNode xn in xnl)//遍历所有子节点
    {
    XmlElement xe=(XmlElement)xn;//将子节点类型转换为XmlElement类型
    if(xe.Name==NodeName)
    {
    XmlNodeList nls=xe.ChildNodes;//继续获取xe子节点的所有子节点
    foreach(XmlNode xn1 in nls)//遍历
    {
    XmlElement xe2=(XmlElement)xn1;//转换类型
    if(xe2.InnerText==Value1)//如果找到
    {
                     xe2.InnerText=Value2;//则修改

    }
    }
    }

    }  xmldoc.Save(FileName);}
    }
    }