LINQ c# reading Xelement by attribute name

MAXI

New Member
\[code\]XDocument xDocument = XDocument.Load("..."); IEnumerable<XElement> elements = xDocument.Element("lfm").Element("events").Elements("event"); try { foreach (XElement elm in elements) {comm.Parameters.AddWithValue("extID", elm.Element("id").Value ?? "");comm.Parameters.AddWithValue("Title", elm.Element("title").Value ?? "");comm.Parameters.AddWithValue("HeadlineArtist", elm.Element("artists").Element("headliner").Value ?? ""); \[/code\]but I want the value of the element "image" with the attribute "size=large", I have been looking all night, and this is the closest I have come:\[code\]comm.Parameters.AddWithValue("LargeImage", elm.Descendants("image") .FirstOrDefault(i => (string)i.Attribute("size") == "large").Value);\[/code\]Sample of the part of XML response:\[code\] <lfm status="ok"> <events xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" location="Chicago, United States" page="1" perPage="1" totalPages="341" total="341" festivalsonly="0" tag=""> <event xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#"> <id>3264699</id> <title>Iron And Wine</title> <artists> <artist>Iron And Wine</artist> <artist>Dr. John</artist> <headliner>Iron And Wine</headliner> </artists> <venue> <id>8915382</id> <name>Ravinia Festival</name> <location> <city>Highland Park</city> <country>United States</country> <street>200 Ravinia Park Rd</street> <postalcode>60035</postalcode> <geo:point> <geo:lat>42.15831</geo:lat> <geo:long>-87.778409</geo:long> </geo:point> </location> <url>http://www.last.fm/venue/8915382+Ravinia+Festival</url> <website>http://www.ravinia.org/</website> <phonenumber>847.266.5100</phonenumber> <image size="small">http://userserve-ak.last.fm/serve/34/63026487.jpg</image> <image size="medium">http://userserve-ak.last.fm/serve/64/63026487.jpg</image> <image size="large">http://userserve-ak.last.fm/serve/126/63026487.jpg</image> <image size="extralarge">http://userserve-ak.last.fm/serve/252/63026487.jpg</image>\[/code\]
 
Back
Top