XML-String auslesen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von MarcoIT.

    XML-String auslesen

    Hallo Zusammen,

    gerade versuche ich einen XML String durchzugehen und zu splitten.
    Der String (in keiner Datei vorhanden nur als Rückgabe aus einem Makro) sieht so aus:

    XML-Quellcode

    1. <?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
    2. <Kunden><Kunde Typ="Kunde"><Nummer>10060</Nummer><Name>Kleinschmitt Elvira GmbH</Name></Kunde><Kunde Typ="Kunde"><Nummer>10010</Nummer><Name>Frey KG</Name></Kunde><Kunde Typ="Kunde"><Nummer>10120</Nummer><Name>Trading Corp.</Name></Kunde><Kunde Typ="Kunde"><Nummer>10100</Nummer><Name>Maria Rudloff</Name></Kunde><Kunde Typ="Kunde"><Nummer>10080</Nummer><Name>VEDENERS GmbH</Name></Kunde><Kunde Typ="Kunde"><Nummer>10070</Nummer><Name>Hochtief AG</Name></Kunde><Kunde Typ="Kunde"><Nummer>10040</Nummer><Name>Natural Foods GmbH</Name></Kunde><Kunde Typ="Kunde"><Nummer>10020</Nummer><Name>Sandy Graham LTD</Name></Kunde><Kunde Typ="Kunde"><Nummer>10090</Nummer><Name>Fröschl</Name></Kunde><Kunde Typ="Kunde"><Nummer>10110</Nummer><Name>Datenhaus &amp; Schmitt GmbH &amp;. Co KG</Name></Kunde><Kunde Typ="Kunde"><Nummer>10400</Nummer><Name>Trade International AG</Name></Kunde><Kunde Typ="Kunde"><Nummer>10450</Nummer><Name>ConCept inc.</Name></Kunde><Kunde Typ="Kunde"><Nummer>10500</Nummer><Name>Diverse</Name></Kunde><Kunde Typ="Kunde"><Nummer>10600</Nummer><Name>Haus- &amp; Hobbymarkt</Name></Kunde><Kunde Typ="Kunde"><Nummer>10800</Nummer><Name>BARVERKAUF</Name></Kunde><Kunde Typ="Kunde"><Nummer>10850</Nummer><Name>Interner Verrechnungskunde Mandant 1</Name></Kunde><Kunde Typ="Kunde"><Nummer>11900</Nummer><Name>Laboratorios Argentinos</Name></Kunde><Kunde Typ="Kunde"><Nummer>11950</Nummer><Name>Dr. Schulze GmbH</Name></Kunde><Kunde Typ="Kunde"><Nummer>12000</Nummer><Name>American Union Chemical</Name></Kunde></Kunden>


    Und ich möchte jetzt jeden Kunden mit Nummer in eine Combobox einschreiben lassen. Wie kann ich das ganze parsen bzw. durchgehen?
    Wenn ich jetzt mit einer For Each das ganze durchgehe, dann nimmt er mir die XML-Tags jedesmal mit und trägt diese in meine Combobox ein.
    Ich will aber ja das jeder Kunde mit Nummer in der Combobox steht:
    Kundennummer Kundenname

    Wie muss ich denn das XML parsen so das ich nur den Inhalt erhalte?

    Grüßle Marco
    Ja das habe ich inzwischen auch gefunden allerdings erhalte ich immer die Fehlermeldung:

    Die 'ReadElementContentAs()'-Methoden dürfen für ein Element mit untergeordneten Elementen nicht aufgerufen werden. Zeile 2, Position 115.

    Muss ich mal schauen das ich das abänder.

    Danke dir dennoch
    Okay habe es hinbekommen.
    Gestern kaum noch zeit gefunden deswegen musste ich es heute morgen machen.
    Meine Combobox heißt cb_kunden.
    Wenn es noch jemand benötigen sollte hier mal die Lösung. "Nummer" und "Name" sind die Knoten die auszulesen sind. Wenn ihr andere Knotennamen habt müsst ihr die Werte natürlich ändern.
    Srvkunden ist bei mir der XML-String den ich erhalte vom Server auch das solltet ihr ändern. Entweder in ein XML-Dokument Pfad oder in den Variablennamen der den XML-String enthält.
    Viel Spaß dabei

    VB.NET-Quellcode

    1. Private Sub XMLReader()
    2. Dim xDoc As XmlDocument = New XmlDocument
    3. xDoc.LoadXml(srvkunden)
    4. Dim xmlnummer As XmlNodeList = xDoc.GetElementsByTagName("Nummer")
    5. Dim xmlname As XmlNodeList = xDoc.GetElementsByTagName("Name")
    6. cb_kunden.Text = ("Nummer: " & xmlnummer(0).InnerText & " Name: " & xmlname(0).InnerText)
    7. End Sub


    Grüßle Marco