根据用户输入删除XML节点

时间:2010-09-28 17:28:52

标签: c# xml


 我试图在xml文档中写入所有被删除的元素属性以保存在数据库中。当用户删除被删除的元素时,我需要从Xml文档中删除该元素。

  XmlDocument oXmlDocument = new XmlDocument();
    oXmlDocument.Load(@"D:\VanithaApps\SenMail\DiagramData.xml");
    Boolean nodeExits = false;
    XmlNode oXmlRootNode = oXmlDocument.SelectSingleNode("records");      
    XmlNodeList xmlnode = oXmlDocument.GetElementsByTagName("record");

    if (delete=="1")
    {
        if (xmlnode.Count > 0)
        {
            for (int i = 0; i < xmlnode.Count; i++)
            {
                string tempVar = element.Substring(0, element.Length - 1);
                if (xmlnode[i].ChildNodes[2].InnerText == tempVar)
                {
                    try
                    {
                        oXmlRootNode.RemoveChild(xmlnode[i]);
                        goto Found;
                    }
                    catch(Exception ex)
                    {
                        ex.ToString();
                    }

                }
            }
        }
    }

    if (xmlnode.Count > 0)
    {
        for (int i = 0; i < xmlnode.Count; i++)
        {
            string tempVar = element.Substring(0, element.Length-1);
            if (xmlnode[i].ChildNodes[2].InnerText == tempVar)
            {
                nodeExits = true;
                XmlNode XAxis = xmlnode[i].ChildNodes[0];
                XAxis.InnerText = Convert.ToString(x);

                XmlNode YAxis = xmlnode[i].ChildNodes[1];
                YAxis.InnerText = Convert.ToString(y);
            }

        }
         if (nodeExits == false)
            {
                CreateNewNode(x, y, element, userid, oXmlDocument, oXmlRootNode);

            }
    }

    else
    {
        CreateNewNode(x, y, element, userid, oXmlDocument, oXmlRootNode);
    }

    Found:

    int result = 0;
    return result;

我之前没有广泛使用过xml   <?xml version="1.0" encoding="utf-8"?> <records> <record> <X-Cordinate>774</X-Cordinate> <Y-Cordinate>173</Y-Cordinate> <Element>drag595</Element> <UserID>1</UserID> </record> </records>
我想删除其子元素'Element'值等于tempVar.Here如果Element值等于drag595,我想从我的XML中删除该条目。

1 个答案:

答案 0 :(得分:0)

更改

oXmlRootNode.RemoveChild(xmlnode[i]);//not working//

xmlnode[i].ParentNode.RemoveChild(xmlnode[i]);

儿童只能从各自的父母身上移除。