无法替换子XmlDocument

时间:2014-02-01 18:55:09

标签: c# xml

我在ASP.NET中使用XML作为讨论论坛。我正在尝试添加更新评论的功能。我的XML结构是这样的:

<forum>
 <author id="1">
  <comment id="0" idUser="19">
   <name>....</name>
   <date>....</date>
   <message>...</message>
  </comment>
  <comment id="1" idUser="4">
   ....
  </comment>
 </author>
 <author id="2">
  ....
 </author>
</forum>

我的代码是:

protected void btnEditComment_Click(object sender, EventArgs e)
{
    if (messageTxb.Text!="" && nameTxb.Text!="")
    {
        XmlDocument doc = new XmlDocument();
        doc.Load(Server.MapPath("~/App_Data/forum.xml"));
        XmlNode newComment = (XmlNode)Session["Comment"];
        XmlNode oldComment = doc.SelectSingleNode(string.Format("//author[@id={0}]/comment[@id={1}]",Request.QueryString["id"],newComment.Attributes["id"].Value));
        newComment.ChildNodes[0].InnerText = nameTxb.Text.Trim();
        newComment.ChildNodes[1].InnerText = string.Format("{0:D}", DateTime.Now);
        newComment.ChildNodes[2].InnerText = messageTxb.Text.Trim();
        oldComment.ParentNode.ReplaceChild(newComment, oldComment);
        doc.Save(Server.MapPath("~/App_Data/forum.xml"));
        Repeater1.DataBind();
        Response.Redirect(string.Format("~/user/Autor.aspx?id={0}", Request.QueryString["id"]));
    }
}

我收到错误

  

&#39;要插入的节点来自不同的文档上下文。&#39;

当我尝试使用replaceChild方法时它会引发。

1 个答案:

答案 0 :(得分:0)

尝试替换此行: oldComment.ParentNode.ReplaceChild(doc.ImportNode(newComment,true),oldComment);