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 ?? "");
nhưng tôi muốn giá trị của phần tử "hình ảnh" có thuộc tính "size = large", tôi đã tìm kiếm cả đêm và đây là tôi đã đi:Tìm XElement với tên và giá trị thuộc tính nhất định với LINQ
comm.Parameters.AddWithValue("LargeImage",
elm.Descendants("image")
.FirstOrDefault(i => (string)i.Attribute("size") == "large").Value);
mẫu của một phần của câu trả lời XML:
<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>
Vì vậy, vấn đề là những gì? Điều đó có vẻ tốt, nhưng nó phụ thuộc vào những gì 'elm' là (bạn không cho bạn thấy làm thế nào có được từ xDocument để elm). – HackedByChinese
Bạn sẽ nhận được 'NullReferenceException' khi không tìm thấy phần tử nào với thuộc tính đó. – MarcinJuraszek