C#:代码在XML文档中创建不需要的子节点

时间:2011-03-28 04:05:22

标签: c# xml listview

我在这里工作的一段代码几乎是完美的接受我认为迭代片我做错了。 ListView中的项目不会成为XML文件中的单独且不同的节点。每个后续项目都将成为ListView中第一个项目的子节点。我究竟做错了什么?代码如下:

    private void button1_Click(object sender, EventArgs e)
    {
        System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(Application.StartupPath + "\\database.xml", null);
        writer.WriteStartElement("Database");
        for (int i = 0; i < listView1.Items.Count; i++)
        {
            writer.WriteStartElement("Account");
            writer.WriteAttributeString("Description", listView1.Items[i].SubItems[0].Text);
            writer.WriteAttributeString("Username", listView1.Items[i].SubItems[1].Text);
            writer.WriteAttributeString("Password", listView1.Items[i].SubItems[2].Text);

        }
        writer.WriteEndElement();
        writer.Close();
    }

2 个答案:

答案 0 :(得分:1)

你内部没有WriteEndElement来循环关闭“帐户节点。

答案 1 :(得分:1)

你没有写出Account结束元素 - 这应该这样做:

    for (int i = 0; i < listView1.Items.Count; i++)
    {
        writer.WriteStartElement("Account");
        writer.WriteAttributeString("Description", listView1.Items[i].SubItems[0].Text);
        writer.WriteAttributeString("Username", listView1.Items[i].SubItems[1].Text);
        writer.WriteAttributeString("Password", listView1.Items[i].SubItems[2].Text);
        writer.WriteEndElement();
    }