Этот запрос LINQ to XML должен быть близок к тому, что вы ищете:
<code>
XElement xml = new XElement("contacts",
new XElement("contact",
new XAttribute("contactId", ""),
new XElement("firstName", ""),
new XElement("lastName", ""),
new XElement("Address",
new XElement("Street", ""))
),</p>
<p>new XElement("contact",
new XAttribute("contactId", ""),
new XElement("firstName", ""),
new XElement("lastName", "")
)
);</p>
<p>var query = from c in xml.Elements()
where c.Value != ""
select c;</p>
<p>Console.WriteLine(xml);
Console.WriteLine(query.Count());</p>
<p>
При подсчете запроса == 0 у вас нет элементов с контентом.
В зависимости от того, что вам нужно, и если у вас нет другого использования для манипулирования стилем LINQ, опубликованное решение xPath вполне может подойти лучше.