public void ChangeName(string Nodepath,string newname)
        {
            XmlDocument doc = new XmlDocument();
            doc.Load(this.filePath);            XmlNode node = doc.SelectSingleNode(Nodepath);//通过XPath找到你要修改的节点
            XmlElement xe = doc.CreateElement(newname); //新名字
            XmlNode parent = node.ParentNode;
            parent.RemoveChild(node);
            xe.InnerXml = node.InnerXml;
            parent.AppendChild(xe);
            doc.Save(this.filePath);       
        }使用这个方法将一个节点的值复制到了一个新名称的节点中,但是,如何将子节点和属性都复制进去呢

解决方案 »

  1.   

    试试:XmlNode node = doc.SelectSingleNode("");//通过XPath找到你要修改的节点 
    //XmlElement xe = doc.CloneNode((""); //新名字 
    XmlNode parent = node.ParentNode;
    XmlNode cloneNode = node.CloneNode(true);//复制节点
    parent.RemoveChild(node);
    xe.InnerXml = node.InnerXml;
    //parent.AppendChild(cloneNode);
    doc.Save(this.filePath);
      

  2.   


    public void ChangeName(string Nodepath,string newname) 
            { 
                XmlDocument doc = new XmlDocument(); 
                doc.Load(this.filePath);             XmlNode node = doc.SelectSingleNode(Nodepath);//通过XPath找到你要修改的节点 
                  //XmlElement xe = doc.CreateElement(newname); //新名字 
                  XmlNode parent = node.ParentNode; 
                XmlNode cloneNode = node.CloneNode(true);//复制节点
                parent.RemoveChild(node); 
                //xe.InnerXml = node.InnerXml; 
                parent.AppendChild(cloneNode); 
                doc.Save(this.filePath);      
            }