<?xml version="1.0" encoding="utf-8"?>
<UserInfo>
  <Info id="1">
    <UserName>aaads</UserName>
    <Height>138</Height>
  </Info>
  <Info id="2">
    <UserName>aSSSaads</UserName>
    <Height>1438</Height>
  </Info>
</UserInfo>
XmlDocument xmlDoc = new XmlDocument();
        xmlDoc.Load(Server.MapPath("Test.xml"));
        XmlNodeList nodeList = xmlDoc.SelectSingleNode("/UserInfo").ChildNodes;
        foreach (XmlNode node in nodeList)
        {
            XmlElement ele = (XmlElement)node;
            if (int.Parse(ele.GetAttribute("id")) == 2)
            {
                node.ParentNode.RemoveChild(node);
            }
        }
        xmlDoc.Save(Server.MapPath("Test.xml"));
请问删除之后的XML文件为什么老提示
错误 1 意外的 XML 声明。XML 声明必须是文档中的第一个节点,而且声明前面不允许出现空白字符。
另外想询问一下 怎么删除多条记录呢?比如选中三条就删除三条?

解决方案 »

  1.   

    奇怪哦 我删除一次之后 察看XML文件  那个xml下面有红色波浪线  错误列表就是发贴提示
    另外删除多条记录怎么实现呢?比如ID为3,9,11什么的
      

  2.   

    我换了个xml文件还是一样  前面的<?字体变小了点 但是前面没有空格 
      

  3.   

    那就用Switch(ele.GetAttribute("id"))
    {
    case 1:
    case 3:
    case 9:}
      

  4.   

    那个文件格式的问题
    Response.Write("<script>alert('删除成功!');window.location.href='Test.aspx';</script>");
    加了这个 忘记贴上来了  为什么不可以提示呢?
      

  5.   

    可否详细点
    string str = "2,3,4";
                string[] strArr = str.Split(',');
                for (int i = 0; i < strArr.Length; i++)
                {
                    switch (ele.GetAttribute("id"))
                    {
                        case strArr[i]: node.ParentNode.RemoveChild(node);
                    }
                    //if (int.Parse(ele.GetAttribute("id")) == int.Parse(strArr[i]))
                    //{
                    //    node.ParentNode.RemoveChild(node);
                    //}
                }
    我想删除ID是2,3,4的