添加到XML文件

Ray*_*ane 0 c# xml wpf text

我正在制作一个WPF,搜索XML文件,提取餐馆信息.XML采用以下格式:

    <FoodPhoneNumbers>
      <Restaurant Name="Pizza Place">
        <Type>Pizza</Type>
        <PhoneNumber>(123)-456-7890</PhoneNumber>
        <Hours>
          <Open>11:00am</Open>
          <Close>11:00pm</Close>
        </Hours>
      </Restaurant>
    </FoodPhoneNumbers>
Run Code Online (Sandbox Code Playgroud)

我希望能够将新餐厅添加到XML文件中.我有一个餐馆名称和类型的文本框.然后是三个文本框的电话号码.4个组合框用于开放时间,开放时间,关闭时间和关闭时间.我还有2个列表框,用于选择打开和关闭时间的AM或PM.

我假设我使用XmlTextWriter,但我无法弄清楚如何将文本添加到预先存在的XML文件中.

Jon*_*eet 10

最简单的方法是不使用XmlTextWriter- 只是将整个加载到内存中表示,添加新元素,然后保存.显然,对于大型文件来说这并不是非常有效,但是如果你可以侥幸逃脱它,那真的很简单.例如,使用XDocument:

XDocument doc = XDocument.Load("test.xml");
XElement restaurant = new XElement("Restaurant",
    new XAttribute("Name", "Frenchies"),
    new XElement("Type", "French"),
    new XElement("PhoneNumber", "555-12345678"),
    new XElement("Hours",
         new XElement("Open", "1:00pm"),
         new XElement("Close", "2:00pm")));
doc.Root.Add(restaurant);
doc.Save("test.xml");
Run Code Online (Sandbox Code Playgroud)

或更好:

XDocument doc = XDocument.Load("test.xml");
Restaurant restaurant = ...; // Populate a Restaurant object

// The Restaurant class could know how to serialize itself to an XElement
XElement element = restaurant.ToXElement();  

doc.Root.Add(element);
Run Code Online (Sandbox Code Playgroud)