在web中对一个xml文件进行操作,如下:
      xmldoc.Load(Server.MapPath(xmlStr + ".xml"))
        Dim root As XmlNode = xmldoc.DocumentElement
        Try
            Dim xmlDelNode As XmlNode = root.ChildNodes.ItemOf(1).ChildNodes.ItemOf(1)
            root.ChildNodes.ItemOf(1).RemoveChild(xmlDelNode)
            xmldoc.Save(Server.MapPath(xmlStr + ".xml"))
        Catch ex As Exception
            Response.Write(ex.Message)
        End Try
但是却不能删除所选节点,是什么原因呢?请教高手指教!

解决方案 »

  1.   

    XmlNode delNode = xmldoc.SelectSingleNode("NewsSubject/subject[lm_id=3]");
    xmldoc.DocumentElement.RemoveChild(delNode);
    一般是没有找到结点的问题.
    你的Dim xmlDelNode As XmlNode = root.ChildNodes.ItemOf(1).ChildNodes.ItemOf(1)
    仔细检查一下.
      

  2.   

    哦,问题是这样的,去掉Me.TreeView1.TreeNodeSrc = Server.MapPath("treenodes.xml"),Me.TreeView1.DataBind(),则可成功删掉所选节点;不去掉就不能删除,提示“该进程无法访问文件“c:\inetpub\wwwroot\test\treenodes.xml”,因为该文件正由另一进程使用。”要怎么解决呢?  Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            '在此处放置初始化页的用户代码
            Me.TreeView1.TreeNodeSrc = Server.MapPath("treenodes.xml")
            Me.TreeView1.DataBind()
        End Sub    Private Sub butDel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim xmlDoc As XmlDocument = New XmlDocument
            xmlDoc.Load(Server.MapPath("treenodes.xml"))
            Dim root As XmlNode = xmlDoc.DocumentElement
            Try
                Dim xmlDelNode As XmlNode = root.ChildNodes.ItemOf(3).ChildNodes.ItemOf(2)
                root.ChildNodes.ItemOf(3).RemoveChild(xmlDelNode)
                xmlDoc.Save(Server.MapPath("treenodes.xml"))
            Catch ex As Exception
                Response.Write(ex.Message)
            End Try
        End Sub
      

  3.   

    http://www.cnblogs.com/renyu732/archive/2005/06/11/172709.html
      

  4.   

    http://community.csdn.net/Expert/topic/4098/4098952.xml?temp=.6810114