使用 LINQ to XML 很容易做到这一点。您需要在其中创建一个XElement
包含联系信息的新元素,然后将其添加为Contacts
适当类别中元素的子元素。为简单起见,我建议使用一种方法来创建联系人XElement
,然后简单地将其添加到 XML。它看起来像这样:
public XElement CreateContact(string name, string phone, string address)
{
XElement contact = new XElement("Contact",
new XElement("fullname", name),
new XElement("phoneno", phone),
new XElement("address", address));
return contact;
}
然后你可以用这样的东西添加它:
XDocument xDoc = XDocument.Load("contacts.xml");
string category = "Friends";
string name = "joe";
string phone = "123456";
string address = "stack overflow";
xDoc.Descendants("Contacts")
.Where(x => x.Parent.Attribute("Name").Value == category)
.Single()
.Add(CreateContact(name, phone, address));
xDoc.Save();
XDocument
上面的代码通过加载 XML 文件创建了一个(xDoc)。
LINQ 语句Contact
根据与类别变量匹配的父节点Name
属性选择正确的节点(另请注意,它预计只有一个匹配项)。然后它通过返回的 from添加一个新的Contact
节点组。XElement
CreateContact
然后保存更新的 XML 文件。
新的 XML 将如下所示:
<PhoneContacts>
<Categories>
<Category Name="Colleagues">
<Contacts />
</Category>
<Category Name="Friends">
<Contact>
<fullname>joe</fullname>
<phoneno>123456</phoneno>
<address>stack overflow</address>
</Contact>
</Category>
</Categories>
</PhoneContacts>