Problem z usunięciem całego węzła z pliku xml

0

Witam, problem ostro wałkowany w google ale nie znalazłem w pełni zadowalającego rozwiązania.
Mam plik xml o takiej strukturze:

<?xml version="1.0" ?> <moduly> <modul> <nazwa>TAB1</nazwa> <adres>1.1.1</adres> <typ>1</typ> </modul> <modul> <nazwa>TAB2</nazwa> <adres>1.1.2</adres> <typ>2</typ> </modul> </moduly>

Chcę usunąć w całości węzeł <Modul>...</Modul>, ale jak do tej pory potrafię usunąć wszystkie "dzieci" danego węzła. Niestety w treści pliku xml pozostaje pusty węzeł </Modul> co mi bardzo nie odpowiada.
Przykład:

<?xml version="1.0" ?> <moduly> <modul> <nazwa>TAB1</nazwa> <adres>1.1.1</adres> <typ>1</typ> </modul> <modul> </modul> </moduly>

Jak usunąć taki węzeł by uzyskać coś takiego:

<?xml version="1.0" ?> <moduly> <modul> <nazwa>TAB1</nazwa> <adres>1.1.1</adres> <typ>1</typ> </modul> </moduly>

Mam nadzieję, że jasno opisałem problem. :)
Tutaj mój kod:

            XmlDocument doc = new XmlDocument();
            doc.Load("\\Flash Disk\\smart\\mod.xml");
            XmlNodeList node = doc.SelectNodes("/Moduly/Modul/Adres");
            for (int i = node.Count - 1; i >= 0; i--)
            {
                if (node[i].InnerText == adresMod(comboModUsun.Text))
                {
                    *node[i].ParentNode.RemoveChild(node[i]); *usuwa child <adres>
                    *node[i].RemoveAll(); *usuwa zawartosc child <adres>
                    node[i].ParentNode.RemoveAll(); //usuwa wszystkie childy węzła <modul> ale pozostawia pusty węzeł
                }
            }
             
            doc.Save("\\Flash Disk\\smart\\mod.xml"); //zapisuje zmiany
            loadMod(); //ładuje pozycje do combobox

Z góry dziękuję za pomoc. Pewnie to jakiś banał ale nie mam pomysłu.
pozdrawiam

0

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

0

otrzymałem komunikat:

The node to be removed is not a child of this node.

0

oj, a pomyslec zanim sie zacznie przepisywac :P
ale generalnie moj blad

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

czyli node[i].ParentNode.ParentNode to <Moduly>
a node[i].ParentNode to <Modul>
czyli z Modulty usuwamy konkretny Modul

0

jest ok, nie pomyślałem :)
dzięki bardzo

1 użytkowników online, w tym zalogowanych: 0, gości: 1