[C#] XML Datei durchsuchen - Finde den Fehler nicht

  • C#

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

    [C#] XML Datei durchsuchen - Finde den Fehler nicht

    Hallo,
    Ich möchte gern das immer der Title der Filme zur ListBox hinzugefügt wird. Leider geht es nicht und ich weiß nicht warum.
    Es gibt keinen Fehler aber die Liste Wird nicht erstellt.

    woran könnte das liegen ?


    Quellcode

    1. XmlReader reader = XmlReader.Create(@"http://127.0.0.1/test.xml");
    2. while (reader.Read())
    3. {
    4. if (reader.NodeType == XmlNodeType.Element && reader.Name == "Title")
    5. {
    6. string tmp = reader.ReadElementString();
    7. listBox1.Items.Add(tmp);
    8. }
    9. }


    Die XML Datei:

    Quellcode

    1. <root response="True">
    2. <Movie Title="Superman/Batman: Apocalypse" Year="2010" imdbID="tt1673430" Type="movie"/>
    3. <Movie Title="Waiting for Superman" Year="2010" imdbID="tt1566648" Type="movie"/>
    4. <Movie Title="DC Showcase: Superman/Shazam!: The Return of Black Adam" Year="2010" imdbID="tt1701223" Type="movie"/>
    5. <Movie Title="CR: Superman Returns" Year="2010" imdbID="tt1675287" Type="game"/>
    6. <Movie Title="WALL-E-NATOR/Extreme Renovation: House Edition - Superman's Fortress of Solitude" Year="2010" imdbID="tt1744163" Type="episode"/>
    7. <Movie Title="A First Look at Superman/Batman: Apocalypse" Year="2010" imdbID="tt1706667" Type="movie"/>
    8. <Movie Title="Fat Superman Soldier Boy Dance Parody" Year="2010" imdbID="tt2005215" Type="movie"/>
    9. <Movie Title="Superman Tonight: Bon Jovi" Year="2010" imdbID="tt1995444" Type="movie"/>
    10. <Movie Title="Superman: The 1975 Musical" Year="2010" imdbID="tt1876070" Type="episode"/>
    11. <Movie Title="Between Sasquatch and Superman: Living with Down Syndrome" Year="2010" imdbID="tt1866107" Type="movie"/>
    12. </root>


    C# wird nicht mehr als gesonderte Programmiersprache behandelt und kann im Hauptforum erörtert werden. -> Verschoben.

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

    Setz in Zeile 5 einen Haltepunkt und prüfe mit Hilfe von MouseOver-Tooltips oder dem Überwachungsfenster oder dem Direktfenster, welchen Wert die Eigenschaft reader.Name hat. Wenn du dein Programm dann so abgeändert hast, dass die if-Bedingung tatsächlich erfüllt ist, setzt du nach Zeile 8 (also in Zeile 9) nen Haltepunkt und prüfst erstmal den Inhalt von tmp bzw. ggf. weitere Eigenschaften deines reader-Objekts um herauszufinden, in welcher Eigenschaft eigentlich das drinsteht, was du eigentlich in die Listbox packen willst.

    Debuggen ist nicht schwer, man muss es nur machen...
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.

    King2k7 schrieb:

    C#-Quellcode

    1. && reader.Name == "Title"
    ich denke mal, dies ist immer false.
    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!

    King2k7 schrieb:

    "tmp" ist immer leer.

    Richtig. Denn ReadElementString() gibt dir den Text zurück, der von deinem "Movie"-Tag eingeschlossen wird:

    XML-Quellcode

    1. <Movie Title="diesnicht" Year="diesauchnicht">Das hier wird zurückgegeben</Movie>

    Und da steht in deinem XML natürlich nix.
    Was du abfragen willst, sind die Attribute deines Movie-Elements. Den Rest musst du jetzt aber wirklich selbst rausfinden.
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.