-2

可能重复:
如何使这个数组+函数工作?

这是我的功能,我要做的是将数组发布到 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();
    }

}

我的数组代码是这样的,当我按下 button2 时,数组将进入函数

    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),我在这部分出错了。

4

2 回答 2

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

}
于 2012-08-28T23:19:49.657 回答
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>
于 2012-08-29T04:32:06.973 回答