Можно использовать свойство XElement.IsEmpty . Помните, что IsEmpty
проверяет, как указано в примечании на связанной странице MSDN:
Обратите внимание, что элемент, который содержит
начальный и конечный тег без содержимого
между тегами не считается
быть пустым элементом. Имеет содержание
без длины. Только элемент, который
содержит только начальный тег и является
выражается как завершенный пустой
элемент, считается пустым.
Для иллюстрации рассмотрим следующий пример:
var xml = XElement.Parse(@"<root>
<pair>foo</pair>
<pair></pair>
<single id=""42"" />
<single />
</root>");
foreach (var element in xml.Elements())
{
Console.WriteLine("{0}: {1}", element.IsEmpty, element);
}
// False: <pair>foo</pair>
// False: <pair></pair>
// True: <single id="42" />
// True: <single />
Если вы хотите проверить, что узел IsEmpty
также не имеет атрибутов, добавьте проверку для element.Attributes().Any()
, являющейся false
.