将数据附加到XML。写入文档时遇到问题:不添加节点

时间:2014-05-09 12:12:57

标签: c# xml

我创建了一个简单的解决方案,它应该将一些书面数据附加到XML文件中。

当用户将信息输入房间并点击“添加空间”时,它应该将该信息写入XML文件,但它无法正常工作。

private void button2_Click(object sender, EventArgs e)
    {
        Room r = new Room();
        r.RoomName = txtRoomName.Text;
        r.Length = numLength.Text;
        r.Width = numWidth.Text;
        r.TotalArea = txtArea.Text;
        r.Quality = comboQuality.Text;
        r.RoomPrice = txtRoomPrice.Text;
        //Once these are set, we need to add this info to the Room List.
        rooms.Add(r);
        listView1.Items.Add(r.RoomName);

        XmlDocument xDoc = new XmlDocument();
        string path = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
        xDoc.Load(path + "\\info.xml");
        XmlNode xNode = xDoc.SelectSingleNode("rooms");

        foreach (Room x in rooms)
        {
            XmlNode xHeader = xDoc.CreateElement("Room_Name");
            XmlNode xLength = xDoc.CreateElement("Length");
            XmlNode xWidth = xDoc.CreateElement("Width");
            XmlNode xArea = xDoc.CreateElement("Area");
            XmlNode xQuality = xDoc.CreateElement("Quality");
            XmlNode xRoomPrice = xDoc.CreateElement("Room_Price");
            xHeader.InnerText = r.RoomName;
            xLength.InnerText = r.Length;
            xWidth.InnerText = r.Width;
            xArea.InnerText = r.TotalArea;
            xQuality.InnerText = r.Quality;
            xRoomPrice.InnerText = r.RoomPrice;
            xDoc.Save(path + "\\Address Book - User\\info.xml");
        }
    }

1 个答案:

答案 0 :(得分:1)

您正在创建XmlNodes,但不会将其附加到任何位置。使用AppendChild()在某处添加元素(可能xNode)。

您似乎还想要一个元素<Room>,您可以在其中附加名称,大小和其他属性。