Problem mit XMLDocument

  • VB.NET
  • .NET (FX) 4.0

Es gibt 11 Antworten in diesem Thema. Der letzte Beitrag () ist von KingTimon.

    Problem mit XMLDocument

    Hi Leute,

    Ich stehe bei einem Problem. Es ist das erste mal, dass ich versuche mit XML zu arbeiten. Schreiben funktioniert soweit, aber beim Lesen hab ich so meine Probleme.

    Mein Code bisher:

    VB.NET-Quellcode

    1. Dim XMLDoc As New Xml.XmlDocument
    2. XMLDoc.Load("Pfad")
    3. Using XMLReader As Xml.XmlNodeReader = New Xml.XmlNodeReader(XMLDoc)
    4. With XMLReader
    5. While (.Read)
    6. 'Unwichtiger Kram
    7. End While
    8. End With
    9. End Using

    Mein Problem liegt schon nach der zweiten Zeile. Nachdem Befehl XMLDoc.Load werden keine Funktionen mehr ausgeführt. Sprich: Schreibe ich ÜBER XMLDoc.Load ein Messagebox.show("Test"), dann bekomm ich die Messagebox. Wenn ich jedoch versuche, unterhalb der Codezeile eine Messagebox aufzurufen, funktionierts nicht. Es funktioniert keine Codezeile danach, was ich ziemlich komisch finde.

    Der Pfad bei XMLDoc.Load stimmt. Die XML-Datei gibt es.

    Hat jemand von euch eine Ahnung an was das liegen könnte?

    MFG
    Auf der Suche nach Coding-Kursen auf Lence.at
    Jou.
    @KingTimon Mach Dir für solche Tests immer einen Button und pack den Code da rein.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Ahja, da bekomm ich ja die Fehlermeldung:

    Unerwartetes Token '1'. Erwartet wurde das Token '='. Zeile 3, Position 23.

    Weiß jemand weiter?
    Auf der Suche nach Coding-Kursen auf Lence.at
    Gespeichert so:

    VB.NET-Quellcode

    1. Dim Writer As New Xml.XmlTextWriter("Unwichtig", System.Text.Encoding.Unicode)
    2. With Writer
    3. .Formatting = Xml.Formatting.Indented
    4. .Indentation = 5
    5. .WriteStartDocument()
    6. .WriteStartElement("Lektionen")
    7. .WriteStartElement("Spanisch Unidad 1")
    8. .WriteAttributeString("Beschreibung", "Spanisch-Vokabel aus dem Unit 1")
    9. .WriteAttributeString("Sprache", "Spanisch")
    10. .WriteAttributeString("Pfad", "C:\Test.xml")
    11. .WriteEndElement()
    12. .WriteStartElement("Englisch Unit 4")
    13. .WriteAttributeString("Beschreibung", "...")
    14. .WriteAttributeString("Sprache", "Englisch")
    15. .WriteAttributeString("Pfad", "C:\Englisch.xml")
    16. .WriteEndElement()
    17. .WriteEndElement()
    18. .Close()
    19. End With

    Also, ich bekomm grad mit, beim Vorschaufenster wird er korrekt angezeigt, jedoch wenn ich die Datei mit dem Internet Explorer öffnen will, zeigt er mir nix an...

    EDIT: Mit dem Editor kann ichs öffnen
    Auf der Suche nach Coding-Kursen auf Lence.at

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „KingTimon“ ()

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-16"?>
    2. <Lektionen>
    3. <Spanisch Unidad 1 Beschreibung="Spanisch-Vokabel aus dem Unit 1" Sprache="Spanisch" Pfad="C:\Test.xml" />
    4. <Englisch Unit 4 Beschreibung="..." Sprache="Englisch" Pfad="C:\Englisch.xml" />
    5. </Lektionen>


    Das hier wäre der Code der XML-Datei
    Auf der Suche nach Coding-Kursen auf Lence.at
    ich denke sowas geht nicht: <Spanisch Unidad 1 Beschreibung="Bla"/>. Tags dürfen keine Spaces enthalten.

    Der Aufbau des Xmls ist auch falsch - der Lektion-Titel muss ein Attribut sein, nicht ein Tag.
    Überhaupt machstes dir mit Xml irre schwer.
    Bastel dir ein typisiertes Dataset, und lege darin Tabellen an.
    Speichere mit Dataset.WriteXml ab, (und dann kannste auch sehen, wie richtiges Xml geht)


    Datenverarbeitungs-Vorraussetzungen
    Der Link führt alles auf, was du brauchst, und mit weniger gehts leider nicht. Gugge insbesondere das Daten laden und speichern daraus

    KingTimon schrieb:

    Mit dem Editor kann ichs öffnen
    Mit welchem?
    Was sagt der XML-Viewer?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    @ErfinderDesRades
    Ah oke, dann wird das das Problem sein.

    Ich verwende XML, da ich hingewiesen wurde, dass dies besser wäre als .ini - Dateien.
    wie das mit diesen DataSets funktioniert, hab ich auch keine Ahnung... mal deine Links anschauen. Danke dir

    @RodFromGermany
    Mit dem auf Windows 7 vorinstallierten Editor.

    Welcher XML-Viewer?
    Auf der Suche nach Coding-Kursen auf Lence.at

    KingTimon schrieb:

    Ich verwende XML, da ich hingewiesen wurde, dass dies besser wäre als .ini - Dateien.
    Das auf jeden fall.
    Aber grad XmlReader sind doch Krampf zum Quadrat.
    Da ist XmlDocument doch zehnfach besser, und XDocument nochmal zehnfach besser.
    Und typDataset nochmal zehnfach besser.
    Macht zusammen 1000fach besser :D
    @ErfinderDesRadesJaaa, deine tuts sind meistens wirklich gut, aber leider kenn ich mich da trotzdem von hinten bis vorne nicht aus...

    hab mit typDataSets noch nie gearbeitet.

    Mal schaun ob ich was zusammenbekomm, ansonsten bleib ich bei INI
    Auf der Suche nach Coding-Kursen auf Lence.at