【问题标题】:problems with array and function and xml [duplicate]数组和函数以及xml的问题[重复]
【发布时间】:2012-08-28 23:05:41
【问题描述】:

可能重复:
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),我在这部分出错了。

【问题讨论】:

  • 有什么理由不使用 XDocument (LINQ)?
  • 对不起.. 实际问题是什么?你已经说了你想做什么..但你还没有说你的问题是什么。
  • 不是真的是不同的问题
  • 阅读编译器错误。 “我在这部分出现错误”.. 很明显,您正在尝试添加 Dictionary&lt;string, string&gt;,因为它们在 Dictionary&lt;string, string&gt; 中的值.. 那是行不通的。编译器会告诉你这个。你在@ja72 的链接中说了同样的话。

标签: c# xml arrays winforms file


【解决方案1】:

为什么还要麻烦字典阶段?

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

}

【讨论】:

  • 我很麻烦,因为我有很多按钮,每个按钮都有自己的 xml 文件,我只想制作一个函数来完成需要做的事情......我知道如何在 php 上制作它,但是在 c# winforms 上不是 disame
【解决方案2】:

如果我了解您的要求,那么您可能只需要以下内容:

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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 2015-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-23
    相关资源
    最近更新 更多