Добавление и удаление узла в XML - C#
Формулировка задачи:
<?xml version="1.0" encoding="utf-8"?>
<PassSaver>
<profile name="1" pass="2">
<Service name="123"></Service>
<Service name="456"></Service>
</profile>
<profile name="5" pass="6">
<Service name="123"></Service>
<Service name="456"></Service>
</profile>
</PassSaver>
<profile name="1" pass="2">
<profile name="1" pass="2">
<Service name="123">
<login>NAME</login>
</Service>
<Service name="456"></Service>
</profile>
XDocument doc = XDocument.Load("1.xml");
IEnumerable<XElement> profiles = doc.Descendants("profile").Where((el => (string)el.Attribute("name") == "1"));
foreach (XElement el in profiles)
{
IEnumerable<XElement> elements1 = doc.Descendants("Service").Where((el2 => ((string)el2.Attribute("name") == "123")));
foreach (XElement el2 in elements1)
{
XElement profile = new XElement("login","NAME");
el2.Add(profile);
}
}<?xml version="1.0" encoding="utf-8"?>
<PassSaver>
<profile name="1" pass="2">
<Service name="123">
<login>NAME</login>
</Service>
<Service name="456"></Service>
</profile>
<profile name="5" pass="6">
<Service name="123">
<login>NAME</login>
</Service>
<Service name="456"></Service>
</profile>
</PassSaver>
Решение задачи: «Добавление и удаление узла в XML»
textual
Листинг программы
var entries = from service in doc.Root.XPathSelectElements("/profile/Service")
where service.HasElements
from login in service.Elements("login")
select new { Name = (string)service.Attribute("name"), Login = login.Value };
dataGrid.DataSource = entries.ToArray();