Как выбрать определенный узел с ПОМОЩЬЮ-К-XML

Я могу выбрать первый узел клиента и изменить название компании с кодом ниже.

Но как выбрать узел клиента, где ID-2?

    XDocument xmldoc = new XDocument(
        new XDeclaration("1.0", "utf-8", "yes"),
        new XComment("These are all the customers transfered from the database."),
        new XElement("Customers",
            new XElement("Customer",
                new XAttribute("ID", 1),
                new XElement("FullName", "Jim Tester"),
                new XElement("Title", "Developer"),
                new XElement("Company", "Apple Inc.")
                ),
            new XElement("Customer",
                new XAttribute("ID", 2),
                new XElement("FullName", "John Testly"),
                new XElement("Title", "Tester"),
                new XElement("Company", "Google")
                )
            )
        );

    XElement elementToChange = xmldoc.Element("Customers").Element("Customer").Element("Company");
    elementToChange.ReplaceWith(new XElement("Company", "new company value..."));

ОТВЕТ:

Спасибо ребята, для записи, вот точный синтаксис для поиска элемента компании в элементе клиента-с-id-2, а затем изменить только значение элемента компании:

XElement elementToChange = xmldoc.Element("Customers")
    .Elements("Customer")
    .Single(x => (int)x.Attribute("ID") == 2)
    .Element("Company");
elementToChange.ReplaceWith(
    new XElement("Company", "new company value...")
    );

ОТВЕТ с METHOD SYNTAX:

Просто понял это в методе синтаксиса, а также:

XElement elementToChange = (from c in xmldoc.Element("Customers")
                                .Elements("Customer")
                            where (int)c.Attribute("ID") == 3
                            select c).Single().Element("Company");

Ответ на: "Как выбрать определенный узел с ПОМОЩЬЮ-К-XML"

Количество ответов:2

Предполагая, что идентификатор уникален:

var result = xmldoc.Element("Customers")
                   .Elements("Customer")
                   .Single(x => (int?)x.Attribute("ID") == 2);

Вы также можете использовать "--22-" , FirstOrDefault, , SingleOrDefault or или Where, instead of , вместо Single for different circumstances. для разных обстоятельств.

Я бы использовать что-то вроде:

dim customer = (from c in xmldoc...<Customer> 
                where c.<ID>.Value=22 
                select c).SingleOrDefault 

Редактировать:

пропустил тег c , извините ...... пример в VB.NET