Direktes Auslesen einer XML-Datei

  • VB.NET

Es gibt 13 Antworten in diesem Thema. Der letzte Beitrag () ist von Mechatron.

    xml auslesen

    hi leute ...

    habe bereits jede menge zeit mit suchen verbracht ... komme aber nicht weiter ...

    wie kann ich eine xml datei auslesen, sodass in einem lable ein wert aus dem ersten knoten steht ... ?

    hoffe, ihr helft mir ...

    danke bereits im voraus ...

    Direktes Auslesen einer XML-Datei

    hi leute ...

    habe ein großes kleines problem, bei dem ich einfach nicht weiter komme. ein zusätzliches problem ist, dass ich hiermit unter zeitdruck stehe ... deshalb bitte ich euch nun um hilfe ...


    Wie kann ich direkt die 5 einzelnen punkte "Nr1, USR1, PWD1, USR2, PWD2" aus einer XML-Datei direkt in die jeweiligen Settings schreiben?

    also "Nr1" soll in My.Settings.Nr1 geschrieben werden
    "USR1" in My.Settings.USR1 ....
    ... etc ...


    XML-Quellcode

    1. <?xml version="1.0" encoding="UTF-8" ?>
    2. - <Zugangsdaten>
    3. - <1>
    4. <Nummer>Nr1</MCNummer>
    5. <Benutzername1>USR1</Benutzername>
    6. <Passwort1>PWD1</Passwort>
    7. </Feratel>
    8. - <2>
    9. <Benutzername>USR2</Benutzername>
    10. <Passwort>PWD2</Passwort>
    11. </Tiscover>
    12. </Zugangsdaten>



    hoffe, ihr könnt mir weiterhelfen, da es wirklich dringend wäre ...

    danke für hilfe bereits im voraus ... :thumbsup:
    Also mitm XML Reader schonmal nicht, das ja keine richtige XML Datei, die bindestriche gehören da nicht hin. Dann werden Elemente aufgemacht aber nicht geschlossen oder welche geschlossen die nie geöffnet wurden O.o

    Wenn du das nur falsch geschrieben haben solltest und es eine richtige XML Datei ist dann mit der XML Reader Klasse, neue Instanz erzeugen, Datei einladen, Element für Element druchgehen, dürfte vom Programmieraufwand schneller sein als mit einer Schleife.
    ok ... keine panik ... die datei ist schon richtig ... nur hier verschrieben ...

    hättest du vl ein beispiel oder so für mich ?? stehe wirklich ziemlich großen zeitdruck und das problem ist, dass ich sowas eigentlich noch nie gemacht habe ...

    wäre wirklich der hammer ...
    Nun Copy und Paste bekommste natürlich nicht, weil ich sicher keine Lust habe die Arbeit für dich zu machen ^^ denn meistens muss die Lese Methode immer auf die XML Angepasst werden, da gibts nichts zu 100% fertiges wie z.B. INI wo es ein festes Format gibt.

    Codes wie der Reader funktioniert findest du wie immer in Google z.B. hier:
    support.microsoft.com/kb/307548
    codeproject.com/KB/cpp/parsefilecode.aspx
    vbdotnetheaven.com/Uploadfile/…AM/ReadXMLinVbDotNet.aspx

    paar sekunden mal Google angeschmissen. Da findest noch mehr.
    Hi,

    Bitte keine Crosspostings!!
    --> Themen zusammengefügt


    bye ...

    LaMa5.
    Die Wissenschaft wird nie ein besseres Kommunikationssystem in den Büros erfinden können als die Kaffeepause.
    (Autor: Earl Wilson, amerik. Schriftsteller)

    https://www.serviceteam-md.de
    Hey!

    Das ist nicht so schwer!

    Angenommen, wir bauen deine XML ein wenig um.

    Etwa so:

    XML-Quellcode

    1. <?xml version="1.0" encoding="utf-8" ?>
    2. <Zugangsdaten>
    3. <n1>
    4. <Nummer>Nr1</Nummer>
    5. <Benutzername>USR1</Benutzername>
    6. <Passwort>PWD1</Passwort>
    7. </n1>
    8. <n2>
    9. <Benutzername>USR2</Benutzername>
    10. <Passwort>PWD2</Passwort>
    11. </n2>
    12. </Zugangsdaten>


    Jetzt mal schritt für Schritt:

    zunächst die Importanweisung, um auf die XML mittels Linq to XML zuzugreifen:

    VB.NET-Quellcode

    1. Imports System.Xml.Linq


    dann deklarieren wir an einer Stelle das XDocument, damit unser Programm weiß, wo die Daten sind.

    VB.NET-Quellcode

    1. Dim file As New XDocument
    2. file = XDocument.Load("PFAD")


    PFAD ist natürlich der Dateipfad, wo die Datei auf der Platte liegt.

    Jetzt will ich auf den ersten Tag zugreifen. Den hab ich ja jetzt <n1> genannt, weil 1 geht nicht. Der Tag muss mit einem Buchstaben anfangen. Wenn du es anders machen möchtest, könntest du dir den Tag auch so definieren <Nr Nr="1">. Das in den "" ist dann aber nicht mehr der Tag Name, sondern eine ... komm jetzt nicht drauf, wie das heißt! sagen wir eine Eigenschaft des Tags :P

    Aber ich will jetzt einfach mal den Tag <n1> ansprechen. Das mach ich so:

    VB.NET-Quellcode

    1. Dim a = From Eintrag1 In file...<n1>


    Anschließend kann ich alles was <n1> untergeordnet ist über a auslesen.
    So zum Beispiel:

    VB.NET-Quellcode

    1. For Each Tag In a
    2. My.Settings.Nr1 = Tag...<Nummer>.Value
    3. My.Settings.USR1 = Tag...<Benutzername>.Value
    4. My.Settings.PWD1 = Tag...<Passwort>.Value
    5. Next


    Hab das auch mal in folgendem Konsolenprogramm getestet:

    VB.NET-Quellcode

    1. Imports System.Xml.Linq
    2. Module Module1
    3. Sub Main()
    4. Dim file As New XDocument
    5. file = XDocument.Load("PFAD")
    6. Dim a = From Eintrag1 In file...<n1>
    7. For Each Tag In a
    8. My.Settings.Nr1 = Tag...<Nummer>.Value
    9. My.Settings.USR1 = Tag...<Benutzername>.Value
    10. My.Settings.PWD1 = Tag...<Passwort>.Value
    11. Next
    12. Console.WriteLine(My.Settings.Nr1 & Environment.NewLine & My.Settings.USR1 & Environment.NewLine & _
    13. My.Settings.PWD1)
    14. Console.ReadLine()
    15. End Sub
    16. End Module


    Ergebnis sind die Werte, die in den Tags gespeichert sind, also:

    Nr1
    USR1
    PWD1

    Viel Erfolg beim Probieren!
    Schreib mal wie es geklappt hat! ;)


    Gruß Mechatron

    __________________________________

    Nachtrag: Das in den "" heißt Attribut!!

    Gruß!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Mechatron“ ()