Mazani dat z XML   zodpovězená otázka

VB.NET, XML

Ahoj,nevite jak se da vymazat "uzel" z xml? nasel sem todle:

        Dim doc As New XmlDocument
        Dim root As XmlNode
        doc.Load(filename)
        root = doc.DocumentElement
        Dim node As XmlNode = doc.SelectSingleNode("data/" & strTypeJakoTag & "/polozka/nazev_filmu[text()='" & name & "']")
        root.RemoveChild(node.ParentNode)
        doc.Save(filename)

to jsem upravil pro svuj xml soubor ktery vypada takhle:

<data>
<detske>
  <polozka>
    <nazev_filmu>Nazev Filmu 1</nazev_filmu>
    <cd_id>ID</cd_id>
    <pozn>Pozn</pozn>
    <date></date>
  </polozka>
  <polozka>
    <nazev_filmu>Nazev Filmu 2</nazev_filmu>
    <cd_id>DVD ID k Nazev Filmu 2</cd_id>
    <pozn>Pozn k Nazev Filmu 2</pozn>
    <date>7.10.2008</date>
  </polozka>

.............

</detske>
</data>

ale kdyz dojde na radek s root.RemoveChild(node.ParentNode) napise chybu:

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

Diky za odpovedi

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Metodu RemoveChild lze použít u rodičovského elementu na element, který je uvnitř něj (třeba u DATA na DETSKE). Abyste mohl použít tuto metodu, musíte jí volat takto:

        node.ParentNode.ParentNode.RemoveChild(node.ParentNode)

Ve vašem kódu je ta chyba, že jste přeskočil jednu úroveň, snažíte se odstranit element POLOZKA z úrovně DATA. POLOZKA je ale podřazená úrovni DETSKE. Dvojitým zavoláním ParentNode se dostanete až na tuto úroveň, kde metoda bude fungovat....

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Dekuji za odpoved,takhle to funguje bez chyby.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback