使用XDocument编写XML可能不会添加XElements

时间:2017-10-20 10:46:26

标签: c# xml linq

我是C#和Linq的新手。我正在尝试将我的Dictionary编写为XML文件。因此,我使用foreach循环将所有XElements添加到根XElement。这将添加到文档中。但它只会将我循环的最后一次迭代添加到文档中。我做错了什么?

这是代码

    public void ToXml(string xmlFile)
    {
        //Dictionary used: Values
        XDocument doc = new XDocument(
            new XDeclaration("1.0", "utf-8", null));
        XElement xRoot = new XElement("RootElement");
        doc.Add(xRoot);
        Dictionary<double, double[]>.KeyCollection keys = Values.Keys;

        foreach(double key in keys)
        {
            XElement inner = new XElement("InnerElement",
                new XAttribute("value", key),
                new XElement("TestValue1", Values[key][0]),
                new XElement("Testvalue2", Values[key][1]),
                new XElement("TestValue3", Values[key][2]),
                new XElement("TestValue4", Values[key][3]),
                new XElement("TestValue5", Values[key][4]),
                new XElement("TestValue6", Values[key][5]));

            xRoot.Add(inner);
        }
        doc.Save(xmlFile);
    }

这是输出:

<?xml version="1.0" encoding="utf-8"?> 
<RootElement> 
    <InnerElement value="400"> 
        <TestValue1>0</TestValue1> 
        <Testvalue2>0</Testvalue2> 
        <TestValue3>200</TestValue3> 
        <TestValue4>0</TestValue4> 
        <TestValue5>100</TestValue5> 
        <TestValue6>491</TestValue6> 
    </InnerElement> 
</RootElement>

0 个答案:

没有答案