使用 foreach 循环的 DataGridView 到 XDocument 异常错误

DataGridView to XDocument Exception Error using foreach loop

我有以下代码可以正确地创建包含第一条记录的 xml 文档。但只是因为我在添加第一条记录(行)后包含了一个中断

xdoc.Add(line);

break;

如果我让循环 运行(为了添加所有记录)我得到异常

错误:{"This operation would create an incorrectly structured document."}

在这里进行了搜索并找到了很多示例,但我无法完全理解它们以及它们与我正在尝试做的事情之间的关系。

XDocument xdoc = new XDocument();

                foreach (DataGridViewRow dr in dataGridView1.Rows)
                {


                    XElement line = new XElement("line");

                        XElement itemid = new XElement("field", dr.Cells["Item ID"].Value.ToString());

                            itemid.Add(new XAttribute("name", "item_id"));
                                line.Add(itemid);

                        XElement itemname = new XElement("field", dr.Cells["Item Name"].Value.ToString());

                            itemname.Add(new XAttribute("name", "item_name"));

                                line.Add(itemname);

                        XElement cost = new XElement("field", dr.Cells["Cost"].Value.ToString());

                            cost.Add(new XAttribute("name", "cost"));

                                line.Add(cost);

                    xdoc.Add(line);

                   break;

                 }

                   xdoc.Save(@"C:\xmltest\test3.xml");

它在我打断时添加了第一行,为什么在我删除打断时不添加其余的行?

好吧,任何 XML 文档都需要一些根元素,因此请将 XDocument xdoc = new XDocument(); 更改为例如XDocument xdoc = new XDocument(new XElement("root"));然后添加到根,即把xdoc.Add(line);改成xdoc.Root.Add(line);.