У меня есть серия XML-файлов, которые я перевожу в папке. Они почти всегда одинаковы, но время от времени я сталкиваюсь с файлом, который не содержит элемент, который содержат другие. Например, в одном файле это будет выглядеть так:
<sb_sbgp>
<itemtitle>French-Canadian</itemtitle>
<itemtype>subscription</itemtype>
<audience>French people</audience>
</sb_sbgp>
но следующий файл может выглядеть так:
<sb_sbgp>
<itemtitle>Spanish</itemtitle>
<itemtype>subscription</itemtype>
</sb_sbgp>
Моя проблема в том, что я не могу просто извлечь те файлы, которые содержат элемент аудитории (что позволило бы мне добавить предложение where). В идеале, я бы хотел, чтобы по умолчанию было null , если оно не существует. Вот запрос, который я использую, чтобы попытаться выполнить это:
XDocument doc = XDocument.Load(mydoc.xml);
var x = (from node in doc.Descendants("sb_sbgp")
select new
{
title = node.Element("itemtitle").Value,
type = node.Element("itemtype").Value,
audience = string.IsNullOrEmpty(node.Element("sb_sbgp_audience").Value) ? node.Element("sb_sbgp_audience").Value : null
});
Я понимаю, что это тестирование, чтобы увидеть, есть ли значение, а не элемент, но я не могу найти ничего, что позволило бы мне проверить существование элемента. Помощь