IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   c# delete node from xml (https://www.imho.ws/showthread.php?t=108513)

V0land 18.09.2006 22:07

c# delete node from xml
 
имеется xml файл такого содержания:

Код:

<?xml version="1.0" encoding="utf-8" ?>
 <Members>
 <Member>
  <Name>Vasily pupkin</Name>
  <Section>Doesnt matter</Section>
  <DeskLocation>Not yet</DeskLocation>
  <Responsibilities>Agent</Responsibilities>
  <PersonalInfo>Lalalalal</PersonalInfo>
  </Member>
 <Member>
  <Name>Petya Ivanov</Name>
  <Section>Doesnt matter</Section>
  <DeskLocation>Not yet</DeskLocation>
  <Responsibilities>Agent</Responsibilities>
  <PersonalInfo>Lalalalal</PersonalInfo>
  </Member>
  </Members>

вопрос:
как мне удалить весь нод, если у меня есть только имя? т.е., допустим, у меня есть комбобокс с именами. выбираю нужное имя, жму кнопку "delete member" и весь нод с этим мембером удаляется.

RaZEr 18.09.2006 22:15

Я думаю в C# ничего нового не придумали. Поэтому смотри ф-ии: getElementsByTagName и getElementsByName. Или используй XPath.

Gunslinger 20.09.2006 15:25

Код:

public void DeleteNodes(string p_Name)
        {
            List<XmlNode> nodeToDelete = new List<XmlNode>();
            XmlDocument doc = new XmlDocument();
            doc.Load("Test.xml");

            foreach (XmlNode node in doc.DocumentElement.ChildNodes)
            {
                bool isDelete = false;
                foreach (XmlNode childnode in node.ChildNodes)
                {
                    if (childnode.InnerText.ToString() == p_Name && childnode.Name.ToString() == "Name")
                    {
                        isDelete = true;
                    }
                }
                if (isDelete){nodeToDelete.Add(node);}
            }

            foreach (XmlNode xmlNode in nodeToDelete)
            {
                doc.DocumentElement.RemoveChild(xmlNode);
            }

            doc.Save("Test.xml");
        }

Вот код на С#. Удалит всех Member-ов с именем p_Name

V0land 20.09.2006 18:38

Gunslinger
сенкс, но я уже сам разобрался.
+ сегодня нашел компоненты, которые намного упрощают сию задачу. (_http://www.chilkatsoft.com)

компонент для xml - бесплатен. письмо по этому поводу на блоге (_http://blog.chilkatsoft.com/) - мое ;)


Часовой пояс GMT +4, время: 21:32.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.