XmlTextWriter   zodpovězená otázka

VB.NET

Dobrý deň , učím sa XML a celkom mi to ide. Najprv som to písal do súboru ,ale všimol som si že XML sa dá pekne ovládať. Moja aplikácia pri prihlašovaní sťahuje dáta z webservera a sú vňom rôzne značky a podla toho vyrezávam z toho čo potrebujem. Teraz to funguje tak že vytváram na WebServeri premennú a do nej pomocou + pridávam značky aj potrebné dáta.

Avšak kedže prechádzam na XML napadlo ma či by sa nedal použiť XmlTextWriter tak aby zapisoval normálne XML do premennej a nie len do súboru. Dalo by sa to prosím ?

Predom daujem za odpovede.

PS: skúšal som

Dim writer As XmlWriter
Dim test As String = STring.Empty
writer = XmlWriter.Create(test)

Jediné čo išlo bez výnimky je :

Dim writer As XmlWriter
writer = XmlWriter.Create(TextBox1.Name)

Ale nezapísalo nič do TextBox1.Text . Použil som nato kód :

writer.WriteStartElement("Table")

        writer.WriteStartElement("Product")

        writer.WriteStartElement("Product_id")
        writer.WriteString(4)
        writer.WriteEndElement()

        writer.WriteStartElement("Product_name")
        writer.WriteString("Product 4")
        writer.WriteEndElement()

        writer.WriteStartElement("Product_price")
        writer.WriteString("4000")
        writer.WriteEndElement()
        writer.WriteEndElement()

        writer.WriteEndElement()

        writer.WriteEndDocument()
        writer.Close()

Ale nič sa nezápislo. TextBox1.Text ostal prázdny.

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

Vytvorte si System.IO.StringWriter pomocou konštruktora bez parametrov a potom XmTextWriter a ako argument pre konštruktor dajte StringWriter .Po zapísaní text získate pomocou StringWriter.ToString()

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

Dakujem velmi pekne. Vyriešili ste moj problém :) všetko funguje tak ako má.

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

Zbytečně neefektivní. Lepší je konstruktoru XmlTextWriteru předat rovnou stream odkazující se na soubor.

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

Mne nejde oto aby som zapísal XML výstup do súboru ,ale do premennej.

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

Proč se tedy snažíte vytvořit instanci XmlWriteru s parametrem pro název souboru?

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

Tu je kód ktorý používam :

Dim s As New System.IO.StringWriter
        Dim writer As XmlWriter = XmlWriter.Create(s)
        'writer = XmlWriter.Create(s)

        writer.WriteStartDocument(True)

        writer.WriteStartElement("Table")
        writer.WriteStartElement("Product")

        writer.WriteStartElement("Product_id")
        writer.WriteString(4)
        writer.WriteEndElement()

        writer.WriteStartElement("Product_name")
        writer.WriteString("Product 4")
        writer.WriteEndElement()

        writer.WriteStartElement("Product_price")
        writer.WriteString("4000")
        writer.WriteEndElement()

        writer.WriteEndElement()
        writer.WriteEndElement()

        writer.WriteEndDocument()
        writer.Close()

        MsgBox(s.ToString)

Čo Vám natom vadí ? Mne to funguje v poriadku a takto to potrebujem ,ale ak je vtom niaky problém a dalo by sa to lepšie ,tak si rád nehám poradiť.

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

Původně tam bylo toto:

Dim writer As XmlWriter
Dim test As String = STring.Empty
writer = XmlWriter.Create(test)

Dim s As New System.IO.StringWriter
Dim writer As XmlWriter = XmlWriter.Create(s)

Což znamená, že nemáte ani tušení, jaký je rozdíl mezi proměnnou a streamem. Proto jsem vám také ze začátku radil, abyste použil rovnou souborový stream, protože mě ani nenapadlo, že to chcete podstrčením stringu do něj nacpat.

nahlásit spamnahlásit spam 1 / 1 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