数组和函数以及xml的问题

时间:2012-08-28 23:05:41

标签: c# xml arrays winforms file

  

可能重复:
  How to make this array + function to work?

我需要帮助我的阵列希望有人能告诉我如何做到这一点。

这是我的功能,我要做的是将数组发布到XML文件上(我是新手)

// ------------------- Functions
static void XML_Array(Dictionary<string, string> Data_Array)
{
    foreach (KeyValuePair<string, string> kvp in Data_Array)
    {
        if (kvp.Key == "XML_File")
        {
            String xmlfile = kvp.Value;
        }

        XmlTextWriter xwriter = new XmlTextWriter(xmlfile, Encoding.Unicode);

        xwriter.WriteStartDocument();

        if (kvp.Key == "StartElement")
        {
            xwriter.WriteStartElement(kvp.Value);
        }

        foreach (KeyValuePair<string, string> kvp2 in Elements_Array)
        {
            String Element_Name = kvp2.Key;
            String Element_Value = kvp2.Value.ToString();

            xwriter.WriteStartElement(Element_Name);
            xwriter.WriteString(Element_Value);
            xwriter.WriteEndElement();
        }

        xwriter.WriteEndDocument();
        xwriter.Close();
    }

}

我的数组代码是这样的,当我按下按钮2时,数组将转到函数

    private void button2_Click(object sender, EventArgs e)
    {
        Dictionary<string, string> Data_Array = new Dictionary<string, string>();
        Data_Array.Add("XML_File", "Settings_Data.xml");
        Data_Array.Add("StartElement", "XMLFILE");

        Dictionary<string, string> Elements_Array = new Dictionary<string, string>();
        Elements_Array.Add("Name", textBox3.Text);
        Elements_Array.Add("Age", textBox4.Text);
        Elements_Array.Add("Gentle", comboBox6.SelectedIndex);

        Data_Array.Add("Elements_Array", Elements_Array);

        XML_Array(Data_Array);
    }

更新
问题是,当然问题是我如何能够发挥作用 其中是String xmlfile =向我显示XML_File值= Settings_Data.xml

还有一个问题是Data_Array.Add(“Elements_Array”,Elements_Array);我在这部分得到错误

2 个答案:

答案 0 :(得分:0)

为什么甚至打扰词典阶段?

private void button2_Click(object sender, EventArgs e)
    {

        XDocument doc = new XDocument()
        XElement root = new XElement("XML_File");
        root.Add(new XElement("name",textBox3.text));

        ... blah blah

}

答案 1 :(得分:0)

如果我了解您的要求,那么您可能只需要这些:

private void button2_Click(object sender, EventArgs e)
{
    var data = new XDocument(new XElement("XMLFILE", new []
    {
        new XElement("Name", textBox3.Text),
        new XElement("Age", textBox4.Text),
        new XElement("Gentle", comboBox6.SelectedIndex),
    }));

    XML_Array("Settings_Data.xml", data);
}

然后有这个:

static void XML_Array(string fileName, XDocument data)
{
    data.Save(fileName);
}

此代码产生的文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<XMLFILE>
  <Name>James</Name>
  <Age>42</Age>
  <Gentle>1</Gentle>
</XMLFILE>