XML in Listbox ausgeben

  • C#

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von spooky.

    XML in Listbox ausgeben

    Hallo,

    ich suche nach einer Erklärung wie ich in C# XML Dateien lesen kann. Ich möchte aus einer XML Datei alle Links in einer Listbox ausgeben scheitere aber an der foreach Schleife. Bis jetzt habe ich folgenden Code mit einem ListViewItem hinbekommen:

    C#-Quellcode

    1. XmlDocument xml = new XmlDocument();
    2. xml.Load("C:\\Users\\Andreas\\test.xml");
    3. foreach (XmlNode fileurl in xml.SelectNodes("/links/*"))
    4. {
    5. ListViewItem item = new ListViewItem(fileurl["link"].InnerText);
    6. item.SubItems.Add(fileurl["link"].InnerText);
    7. listView1.Items.Add(item);
    8. // listBox2.Items.Add(item);
    9. }


    Wie funktoniert das ganze in einer Listbox?
    Nur zur Info:
    Listbox <> ListView
    Listbox != ListView
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen
    @spooky Willkommen im Forum. :thumbup:
    Du hast hier zwei Probleme, die Du beide nicht gekoppelt lösen kannst.
    Einmal liest Du eine XML aus, zum anderen befüllst Du ein Control mit Items.
    Löse jedes Problem unabhängig für sich und füge dann die Lösungen zusammen.
    Was funktioniert hier nicht?

    C#-Quellcode

    1. listBox2.Items.Add(item);
    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!
    Ebenfalls willkommen im Forum.
    Wenn Du versuchst, ein ListViewItem einer ListBox hinzuzufügen, dann wird das eben nix. Die ListBox akzeptiert zwar alles. Ob sie darstellerisch was damit anfangen kann, steht woanders. Füge der ListBox als Item eben nur das hinzu, was Du haben willst:

    C#-Quellcode

    1. listBox2.Items.Add(fileurl["link"].InnerText); //ungeprüft; habe nur Deinen Code modifiziert


    btw: Warum fügtest Du dem ListViewItem 2x pro Element/Zeile den gleichen Text zu (Post#1, Zeile#6, #7)? Dann würde ja bei Anzeige-Einstellung Details in 2 Spalten das gleiche drinstehen. Und: ListBox kann pro Element nur eine Sache darstellen. Zweispaltig pro Eintrag gibt's bei ner ListBox nicht.
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Danke für die herzliche Aufnahme :)

    Ich hab das ganze jetzt mal so hinbekommen:

    C#-Quellcode

    1. XmlDocument xmldoc = new XmlDocument();
    2. XmlNodeList xmlnode;
    3. FileStream fs = new FileStream("C:\\Users\\Andreas\\test.xml", FileMode.Open, FileAccess.Read);
    4. xmldoc.Load(fs);
    5. xmlnode = xmldoc.GetElementsByTagName("link");
    6. foreach (XmlNode item in xmlnode)
    7. {
    8. listBox1.Items.Add(item.InnerText);
    9. }


    Mein Problem war wie @VaporiZed geschrieben hat, das ich das ListviewItem einer Listbox hinzufügen wollte aber die Ausgabe nicht zu gebrauchen war. Mit den Code klappts aber jetzt.

    Danke für die Hilfe!