locked
Sélectionner le bon Attribute dans un XML RRS feed

  • Question

  • Je suis en train de parser un XML fourni par les api de Tumblr et j'ai un petit problème. (Je suis sûr que la réponse est évidente mais bon je trouve pas)

    Je souhaite récuperer le contenu de <photo-url> dont l'attribut est "max-width="400"", cad la string http://24.media.tumblr.com/idtoto400.jpg

    Je pensais à un système de "Attribute("max-width").machinTruc" ou de "Attribute("max-width=\"400\"").Toto" mais cela ne semble pas être ça.

    Une idée ?

    Par ailleurs, je peux faire comment pour récupérer le contenu d'un attribut dans "post" ?

    L'id par exemple ? (29331724731 dans notre cas)

    Merci

    Voici ma branche XML :

    <post id="29331724731" url="http://msdn.tumblr.com/post/29335724931" url-with-slug="http://msdn.tumblr.com/post/29335724931/merci" type="photo" date-gmt="2012-08-13 11:37:54 GMT" date="Mon, 13 Aug 2012 13:37:55" unix-timestamp="1344857814" format="html" reblog-key="ACeddfd" slug="toto" width="750" height="1000">
    <photo-caption>
    <p>Merci les forums MSDN</p>
    </photo-caption>
    <photo-url max-width="1280">
    http://24.media.tumblr.com/idtoto1280.jpg
    </photo-url>
    <photo-url max-width="500">
    http://24.media.tumblr.com/idtoto500.jpg
    </photo-url>
    <photo-url max-width="400">
    http://24.media.tumblr.com/idtoto400.jpg
    </photo-url>
    <photo-url max-width="250">
    http://24.media.tumblr.com/idtoto250.jpg
    </photo-url>
    <photo-url max-width="100">
    http://24.media.tumblr.com/idtoto100.jpg
    </photo-url>
    <photo-url max-width="75">
    http://24.media.tumblr.com/idtoto75sq.jpg
    </photo-url>
    </post>

    Voici ma requête :

    if (e.Error != null) return; XElement xmlTumblr = XElement.Parse(e.Result); listBox1.ItemsSource = from item in xmlTumblr.Descendants("post") select new TumblrItem { Title = CleanAll(CleanCity(item.Element("photo-caption").Value.ToString())), ImageSource = item.Element("photo-url").Attribute("max-width").toto

    };



    "An idea is salvation by imagination." Frank Lloyd Wright

    mercredi 15 août 2012 08:58

Réponses

  • Il faut que tu fasses une requête linq :

    listBox1.ItemsSource = from item in xmlTumblr.Descendants("post") select new TumblrItem { Title = CleanAll(CleanCity(item.Element("photo-caption").Value.ToString())), ImageSource =(from photo in item.Elements("photo-url") where photo.Attribute("max-width").Value=="400" select photo.Value).FirstOrDefault()

    };


    S'il vous plaît n'oublier pas de marquer la ou les réponses qui aident à résoudre votre problème. Pour que la discussion puisse être marquée comme résolue

    • Proposé comme réponse Mafyou vendredi 17 août 2012 10:02
    • Marqué comme réponse Aurel Bera mercredi 3 octobre 2012 14:39
    jeudi 16 août 2012 09:55

Toutes les réponses