Zapisování do XML   zodpovězená otázka

VB.NET

Dobrý den,

mohl by mi někdo poradit jak zapsat hodnotu elementu, jak zapsat hodnotu atributu elementu a jak element přidat.

XML má formát:

<programy>
 <program id="1" name="COA">
   <uhel>26</uhel>
   <Lenght>
    <X delka="100" />
   </Lenght>
 </program>
</programy>

Potřeboval bych př.:

1) zmenit hodnotu (innerText) elementu "uhel"

2) zmenit hodnotu atributu elementu "X delka"

3) pridat celý element "program id="2""

Se čtením tohoto XML nemám problémy, používám třídu System.Xml.XmlDokument, ale v jednom místním článku jsem se dočetl o metodě SAVE, ale tu se mi nedaří používat.

Už jsem na to přišel.

1,2,3)

Tak přidání elementu s attributy je takto:

Dim root As XmlNode = doc.DocumentElement
Dim ProgramElement As XmlElement = doc.CreateElement("program")
Dim elementUhel As XmlElement = doc.CreateElement("uhel")

'nastaveni elementu s atributy
ProgramElement.SetAttribute("id", "3")
ProgramElement.SetAttribute("name", "FOA")
root.InsertAfter(ProgramElement, root.LastChild)

'nastavení elementu a zapsání do předchozího
elementUhel.InnerText = "50"
ProgramElement.InsertAfter(elementUhel, ProgramElement.LastChild)

doc.Save("memory.xml")

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

Trošku se ti pletou pojmy, takže asi bude nejlepší, když si přečteš nějaký článek o práci s XML, např. tento: http://www.vbnet.cz/clanek--80-prace_s_x...

Anebo se místo klasické práce s XML dokumenty nauč novou, supermoderní technologii, která se jmenuje Linq to XML.

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

LinQ to XML má doplnit a zjednodušit v určitých případech práci s XML dokumenty, ne ji plně nahradit. Proto bych se do jejího učení pustil až později.

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

Na přidání elementu i s atributy jsem tedy přišel (snad správně). Ale pořád se mi ho nedaří odstranit, když použiji RemoveAll v

doc.SelectNodes("/programy/program")(lstProgramy.SelectedIndex).RemoveAll()

tak se sice odstraní veškerý obsah elementu včetně jeho atributů, ale samotný element ne (zůstane tam jako <program/>). Jak bych ho mohl odstranit ?

V souboru bude cca 200 elementů s různými atributy id a jmeno - jak odstranit jeden z nich ?

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět
Dim Node as xmlNode=doc.SelectNodes("/programy/program")(lstProgramy.SelectedIndex)
Node.ParentNode.RemoveChild(Node)
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