本帖最后由 ap626 于 2009-10-29 23:17:09 编辑

解决方案 »

  1.   

    xe.GetAttribute("genre") == "2008"没查MSDN按到说,如果结果如你所说的话,这种会不会有问题
      

  2.   

    很明显你没你把最后保存的那一句放到foreach里面!!它保存的还是原本的值!!
    XmlDocument xmlset = new XmlDocument(); 
                xmlset.Load("set.xml");          
                XmlNodeList nodelist = xmlset.SelectSingleNode("set").ChildNodes; 
                foreach (XmlNode xn in nodelist) 
                { 
                    XmlElement xe = (XmlElement)xn;                
                    if (xe.GetAttribute("genre") == "2008") 
                    { 
                        XmlNodeList nls = xe.ChildNodes; 
                        foreach (XmlNode xn1 in nls) 
                        { 
                            XmlElement xe2 = (XmlElement)xn1; 
                            if (xe2.Name == "a") 
                            { 
                                xe2.InnerText = "lisan"; 
                                break; 
                            } 
                        } 
                    } 
                    <!--注意这里放在foreach里面-->
                     xmlset.Save("set.xml");             } 
               我的blog有对xml的操作的文章!!!
      

  3.   

    生命周期问题~~
    下面两句在保存前被释放了~~
     XmlElement xe = (XmlElement)xn;   XmlElement xe2 = (XmlElement)xn1; 
      

  4.   

    XmlDocument xmlset = new XmlDocument(); 
                xmlset.Load("set.xml");          
                XmlNodeList nodelist = xmlset.SelectSingleNode("set").ChildNodes
    XmlNode node;
    node.Attributes["name"]
    node.Append(tempNode)
    node.Remove(tempNode)
            xmlset.Save("set.xml"); 就这些方法用起来很灵活的 
      

  5.   

    <?xml version="1.0" encoding="gb2312" ?> 
    <set> 
      <year genre="2008"> 
        <a>lisan </a> /////////改这里
        <b>cssdbb </b> 
        <c>cc </c> 
        <d>dd </d> 
        <e>ee </e> 
        <f>ff </f> 
        <g>gg </g> 
      </year> 
    .....
    想改成上面那样
      

  6.   

    XML的基本操作吧。修改之后如果要保存到文件,要save一下。