kostenloser Webspace werbefrei: lima-city


C# XML foreach -> while machen

lima-cityForumProgrammiersprachenProgrammieren mit .NET & Mono

  1. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    Hallo LC,
    ich habe einen XML code in der Variable result gespeichert.
    XML:
    <?xml version="1.0" encoding="utf-8" ?> 
    - <api>
     <login>
      <inhalt></inhalt>
      </login>
      <freunde>
      <freund>
      <nick>user1</nick> 
      <id>10</id> 
      <bild>test.jpg</bild> 
      </freund>
      <freund>
      <nick>user2</nick> 
      <id>11</id> 
      <bild>test2.jpg</bild> 
      </freund>
      </freunde>
      </api>


    Nun möchte ich alle freunde auslesen. Das hab ich so versucht:

    XmlDocument xmlfreunde = new XmlDocument();
                       xmlfreunde.LoadXml(result);
    
                        XmlNodeList xnLisst = xmlfreunde.SelectNodes("api/freunde");
                        
                        foreach (XmlNode xfreunden in xnLisst)
                        {
                            string freund = xfreunden["freund"].InnerText;
                            MessageBox.Show(freund);
    
                        }

    So gibt er mit aber nur die Daten es ersten freundes aus. Wie müsste das als while ausehen?

    HELP
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo christian1603,

    ich glaube, dass Dein XPath falsch ist. Der sollte "api/freunde/freund" heißen:
    XmlDocument xmlfreunde = new XmlDocument();
    xmlfreunde.LoadXml(result);
    
    XmlNodeList xnLisst = xmlfreunde.SelectNodes("api/freunde/freund");
                        
    foreach (XmlNode xfreund in xnLisst)
    {
        string freund = xfreund.InnerText;
        MessageBox.Show(freund);
    }
  4. Autor dieses Themas

    christian1603

    Kostenloser Webspace von christian1603

    christian1603 hat kostenlosen Webspace.

    darkpandemic schrieb: Hallo christian1603,

    ich glaube, dass Dein XPath falsch ist. Der sollte "api/freunde/freund" heißen:
    XmlDocument xmlfreunde = new XmlDocument();
    xmlfreunde.LoadXml(result);
    
    XmlNodeList xnLisst = xmlfreunde.SelectNodes("api/freunde/freund");
                        
    foreach (XmlNode xfreund in xnLisst)
    {
        string freund = xfreund.InnerText;
        MessageBox.Show(freund);
    }


    Stimmt Danke,
    jetzt gehts :-)
  5. Hallo Christian,

    auch wenn das Problem schon gelöst ist: ich würde für solche Aufgaben LINQ nehmen. Der Zugriff auf die einzelnen Elemente und Attribute ist damit ziemlich elegant und für eine nicht zu komplexe Abfrage muss man sich auch nicht lange einarbeiten.

    Gruß

    Udo
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!