Итак, я сейчас пытаюсь проанализировать определенные данные в имеющемся у меня документе KML, и после того, как я правильно загрузил документ (проверил, что он был загружен правильно с помощью отладчика), кажется, что он не будет считыватьсяэлементы я пытаюсь скрести.Я продолжаю получать сообщение об ошибке «System.InvalidOperationException: Sequence не содержит элементов».Кто-нибудь может объяснить, почему мой код может не работать?Я исчерпал много документации и других сообщений стека, но безрезультатно.
public async Task ExecuteKMLCrawl()
{
var club = new ClubInfo();
var list = new List<ClubInfo>();
XDocument xDoc = XDocument.Load(@"C:\Users\downloads\doc.kml");
XNamespace ns = "http://www.opengis.net/kml/2.2";
var placemarks =
(from x in xDoc.Descendants()
where x.Name.LocalName == "Placemark"
select new XElement(x)).ToList();
foreach (var placemark in placemarks)
{
//club.ClubName = (from x in placemark.Descendants("name")
// select x).First().Value;
club.Name = (from x in placemark.Descendants("Data")
where x.Attribute("name")?.Value == "President"
select x).First().Value;
club.Email = (from x in placemark.Descendants("Data")
where x.Attribute("name")?.Value == "Email"
select x).First().Value;
club.City = (from x in placemark.Descendants("Data")
where x.Attribute("name")?.Value == "City"
select x).First().Value;
club.State = (from x in placemark.Descendants("Data")
where x.Attribute("name")?.Value == "State"
select x).First().Value;
}
list.Add(club);
await _kmlClubs.InsertManyAsync(list);
Код XML / KML, показанный ниже:
<Placemark>
<name>Club Name</name>
<address>*Address Contained Here*</address>
<ExtendedData>
<Data name="President">
<value>*President Name*</value>
</Data>
<Data name="Email">
<value>s*President Email*</value>
</Data>
<Data name="College/University">
<value>*College Name*</value>
</Data>
<Data name="City">
<value>*City Name*</value>
</Data>
<Data name="State">
<value>*State Initials*</value>
</Data>
</ExtendedData>
</Placemark>
Результат метки. Потомки ("имя")).К списку();
<Placemark xmlns="http://www.opengis.net/kml/2.2">
<name>Mississippi State Swim Club</name>
<address>Mississippi State University Starkville MS</address>
<description><![CDATA[President: Private Name<br>Email: Private@gmail.com<br>College/University: Mississippi State University<br>City: Starkville<br>State: MS]]></description>
<styleUrl>#icon-1899-0288D1</styleUrl>
<ExtendedData>
<Data name="President">
<value>Private Name</value>
</Data>
<Data name="Email">
<value>private@gmail.com</value>
</Data>
<Data name="College/University">
<value>Mississippi State University</value>
</Data>
<Data name="City">
<value>Starkville</value>
</Data>
<Data name="State">
<value>MS</value>
</Data>
</ExtendedData>
</Placemark>