程序没有问题if(xe.GetAttribute("Text")=="互连网业务")
{
xe.RemoveAll();//删除该节点的全部内容
} 可以。你看DropDownList1.SelectedValue的值是不是有问题。

解决方案 »

  1.   

    那样写不对的,要这样写。
    foreach(XmlNode xn in xnl)
    {
    XmlElement xe=(XmlElement)xn;
    if(xe.GetAttribute("Text")==DropDownList1.SelectedValue)
    {
    if (xe== null)
    return -1; XmlNode iXPNode = xe.ParentNode;
    if (iXPNode == null)
    return -2; iXPNode.RemoveChild(xe);

    }
      

  2.   

    我知道问题在那里了,主要的问题是因为有多个节点嵌套,XmlNodeList xnl = dom.SelectSingleNode("siteMap/siteMapNode").ChildNodes;这个条语句只能找到siteMap/siteMapNode下的节点,但是还有可能有siteMap/siteMapNode/siteMapNode下的和siteMap/siteMapNode/siteMapNode//siteMapNode==,所以会有问题.
      

  3.   

    问题解决,给分了
    XmlDocument dom = new XmlDocument();
    dom.Load(Server.MapPath("../XML/treeData.xml"));
    XmlNode xn= dom.SelectSingleNode("//siteMapNode[@Text='"+DropDownList1.SelectedValue+"']");
    XmlNode iXPNode = xn.ParentNode;
    if (iXPNode == null)
    return;
    iXPNode.RemoveChild(xn);
    dom.Save(Server.MapPath("../XML/treeData.xml"));