Вы хотите использовать здесь метод расширения Single
. Попробуйте следующее:
var category = doc.RootNode.Elements("category").Single(
c => c.Attribute("name").Value == "First Category");
var products = category.Elements("product");
Обратите внимание, что это предполагает, что у вас есть только одна категория с именем "Первая категория". Если у вас есть больше, я рекомендую использовать решение Марка; в противном случае это должно быть более подходящим / эффективным решением. Кроме того, это вызовет исключение, если какой-либо узел category
не имеет дочернего узла name
. В противном случае он должен делать именно то, что вы хотите.