0
XML을 구문 분석하려고하는데 특정 요소가 아무 것도 반환하지 않습니다. 첫 번째 블록은 좋은 데이터를 반환하지만 아티스트 노드와 장소 노드는 모두 null을 반환합니다. 나는 무엇을 잘못하고 있는지 모르겠다.xml이 올바르게 구문 분석되지 않습니다.
XDocument xml = XDocument.Parse(data);
var events = xml.Descendants("events");
foreach(var e in events)
{
foreach(var attribute in e.Descendants("event"))
{
string id = (string)attribute.Element("id");
string Title = (string)attribute.Element("title");
DateTime date = DateTime.Parse(((string)attribute.Element("datetime")), null, DateTimeStyles.RoundtripKind);
string TicketUrl = (string)attribute.Element("ticket_url");
TicketType TicketType = (TicketType)Enum.Parse(typeof(TicketType), (string)attribute.Element("ticket_type"));
TicketAvailability TicketAvailability = (TicketAvailability)Enum.Parse(typeof(TicketAvailability), (string)attribute.Element("ticket_status"));
DateTime TicketSaleDate = DateTime.Parse(((string)attribute.Element("on_sale_datetime")), null, DateTimeStyles.RoundtripKind);
DateTime LastAvailabilityCheck = DateTime.Now;
string FacebookRsvpUrl = (string)attribute.Element("facebook_rsvp_url");
string Description = (string)attribute.Element("description");
List<Artist> artistData = new List<Artist>();
Venue venue = new Venue();
foreach (var artistNode in attribute.Descendants("artist"))
{
var artistName = (string)artistNode.Attribute("name");
var junk = (string)artistNode.Attribute("mbid");
var ImageUrl = (string)artistNode.Attribute("image_url");
var ThumbnailUrl = (string)artistNode.Attribute("thumb_url");
var FaceBookUrl = (string)artistNode.Attribute("facebook_tour_dates_url");
artistData.Add(new Artist(artistName, ThumbnailUrl, ImageUrl, FaceBookUrl));
}
foreach (var venueNode in attribute.Descendants("venue"))
{
var VenueName = (string)venueNode.Element("name");
var City = (string)attribute.Element("city");
var Region = (string)venueNode.Attribute("region");
var Country = (string)venueNode.Attribute("country");
var GpsLocation = (string)venueNode.Attribute("latitude") + ", " + (string)attribute.Attribute("longitude");
venue = new Venue(VenueName, City, Region, Country, GpsLocation);
}
concerts.Add(new Concert(id, artistData, venue, date, TicketSaleDate, Description, FacebookRsvpUrl, Title, TicketUrl, TicketType, TicketAvailability, LastAvailabilityCheck));
}
}
샘플 데이터 : 당신은 Attribute
를 사용하고 있지만 XML 요소를 포함
<?xml version="1.0" encoding="UTF-8"?>
<events>
<event>
<id>9203898</id>
<title>Fall Out Boy @ DTE Energy Music Theatre in Clarkston, MI</title>
<datetime>2015-07-10T19:00:00</datetime>
<formatted_datetime>Friday, July 10, 2015 at 7:00PM</formatted_datetime>
<formatted_location>Clarkston, MI</formatted_location>
<ticket_url>http://www.bandsintown.com/event/9203898/buy_tickets?app_id=BandJunkieForWindows&artist=Fall+Out+Boy</ticket_url>
<ticket_type>Tickets</ticket_type>
<ticket_status>available</ticket_status>
<on_sale_datetime>2015-01-23T10:00:00</on_sale_datetime>
<facebook_rsvp_url>http://www.bandsintown.com/event/9203898?app_id=BandJunkieForWindows&artist=Fall+Out+Boy&came_from=67</facebook_rsvp_url>
<description></description>
<artists>
<artist>
<name>Fall Out Boy</name>
<mbid>516cef4d-0718-4007-9939-f9b38af3f784</mbid>
<image_url>http://www.bandsintown.com/FallOutBoy/photo/medium.jpg</image_url>
<thumb_url>http://www.bandsintown.com/FallOutBoy/photo/small.jpg</thumb_url>
<facebook_tour_dates_url>http://bnds.in/1n0W0qQ</facebook_tour_dates_url>
</artist>
</artists>
<venue>
<name>name</name>
<city>place</city>
<region>state</region>
<country>United States</country>
<latitude>142.748783</latitude>
<longitude>-183.380201</longitude>
</venue>
</event>
</events>
감사 할 수 있습니다 이 XML 파싱이 모든 종말점, 요소 및 노드와 함께 작동하는 방법을 여전히 배우고 있습니다. 구문 분석 할 현장 섹션을 가져올 수 없지만 감사 작업을 수행 할 수있었습니다. – shady