Meilleur auteur de réponses
extraire url d'une image dans un fichier XML

Question
-
Salut..,j'ai ce type de document xml:
<item> <description><![CDATA[<style>img { max-width: 310px; }</style><div><img style="float: left; margin: 6px;"
src="http://www.jawharafm.net/data/16-08-11/bna150.jpg" alt="alt" /> ...]]></description> </item>
listBox1.ItemsSource = from item in xmlItems.Descendants("item") let pho = item.Attribute("img") select new news { photo = pho == null ? null : pho.Value, };
le problème est que je n'arrive pas à accéder l'url de la source de la balise <img />(je pense a le faireavec les expressions régulière mais j'ai pas trouvé une solution)Merci
zipo
Réponses
-
Bonjour,
Avec le regex, je suis arrivé à quelque chose comme ça pour récupérer l'adresse de l'image (dans le cas où il y aura toujours l'url de l'image...), après je ne sais pas si exactement ça dont vous avez besoin et pas des autres infos à côté, mais c'est facilement adaptable en faisant quelques regex :)
listBox1.ItemsSource = from item in xdoc.Descendants("item") let pho = item.Element("description") select new news { photo = pho == null ? null : Regex.Matches(pho.Value, "http://.*.(jpg)")[0].Value };
- Marqué comme réponse Zied Nassr mardi 16 août 2011 20:44
Toutes les réponses
-
Bonjour,
Avec le regex, je suis arrivé à quelque chose comme ça pour récupérer l'adresse de l'image (dans le cas où il y aura toujours l'url de l'image...), après je ne sais pas si exactement ça dont vous avez besoin et pas des autres infos à côté, mais c'est facilement adaptable en faisant quelques regex :)
listBox1.ItemsSource = from item in xdoc.Descendants("item") let pho = item.Element("description") select new news { photo = pho == null ? null : Regex.Matches(pho.Value, "http://.*.(jpg)")[0].Value };
- Marqué comme réponse Zied Nassr mardi 16 août 2011 20:44
-
Attention matthieu, ta regex a quelques soucis :
- les parenthèses inutiles autour du jpg,
- le point qui n'est pas escapé
- tu ne prends pas en compte les .JPG (en majuscule)ou les autres extensions genre png.
- s'il n'y a pas d'image, ca crashe
Voila une regex qui fonctionnera a tout les coups
var regex=new Regex("src=(?:\"|\')(?<uri>[^\"']+)(?:\"|\')");
listBox1.ItemsSource = from item in xdoc.Descendants("item") let pho = item.Element("description") select new news { photo = pho == null ? null : (regex.IsMatch(pho.Value)? regex.Match(pho.Value).Groups["uri"].Value : null) };
Voila !
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 rudyhuynMVP, Moderator mardi 16 août 2011 22:06
-