【发布时间】:2012-01-02 13:54:33
【问题描述】:
我在尝试使用新值更新我的 xml 文件时遇到问题。我有一个类 Person,它只包含 2 个字符串,名称和描述。我填充此列表并将其编写为 XML 文件。然后我填充了一个新列表,其中包含许多相同的名称,但其中一些包含另一个列表不包含的描述。如何检查当前 XML 文件中的名称是否包含“no description”以外的值,这是“nothing”的默认值?
部分xml文件:
<?xml version="1.0" encoding="utf-8"?>
<Names>
<Person ID="2">
<Name>Aaron</Name>
<Description>No description</Description>
</Person>
<Person ID="2">
<Name>Abdi</Name>
<Description>No description</Description>
</Person>
</Names>
这是将列表写入xml文件的方法:
public static void SaveAllNames(List<Person> names)
{
XDocument data = XDocument.Load(@"xml\boys\Names.xml");
foreach (Person person in names)
{
XElement newPerson = new XElement("Person",
new XElement("Name", person.Name),
new XElement("Description", person.Description)
);
newPerson.SetAttributeValue("ID", GetNextAvailableID());
data.Element("Names").Add(newPerson);
}
data.Save(@"xml\boys\Names.xml");
}
在 foreach 循环中如何检查人名是否已经存在,然后检查描述是否不是“无描述”,如果是,则使用新信息更新?
【问题讨论】:
标签: c# xml linq-to-xml