Запрос LINQ to XML с предложением where с атрибутом («id»). Value == «1» - PullRequest
0 голосов
/ 27 апреля 2011

Я хочу добавить элемент в файл XML с условием:

like where attribute("id").value=="1"

В этом коде предложение where не работает:

string xmlFilePath = MapPath("Employees.xml");
XDocument xmlDoc = XDocument.Load(xmlFilePath);
try
{
    xmlDoc.Element("employees").Element("employee")
        .Where(employee => employee.Attribute("id").Value == "2").FirstOrDefault())
        .Add(new XElement("city", "welcome"));

    xmlDoc.Save(xmlFilePath);
}
catch (XmlException ex)
{
    //throw new XmlException
}

1 Ответ

0 голосов
/ 27 апреля 2011

Это может работать лучше:

XDocument xmlDoc = XDocument.Load(xmlFilePath);
try
{
    xmlDoc
        // get the employees element
        .Element("employees")
        // get all the employee elements
        .Elements("employee")
        // but filter down to the first one that has id == 2
        .Where(employee => employee.Attribute("id").Value == "2").FirstOrDefault()
        // and add a new city element to it
        .Add(new XElement("city", "welcome"));
    // save the document
    xmlDoc.Save("D:\\x.xml");
}
catch (XmlException ex)
{
    //throw new XmlException
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...