如何将XML子节点添加到父节点c#
如何将XML子节点添加到父节点c# 我当前的xml文件如下所示:如何将XML子节点添加到父节点c#,c#,xml,visual-studio,xml-parsing,linq-to-xml,C#,Xml,Visual Studio,Xml Parsing,Linq To Xml,如何将XML子节点添加到父节点c# 我当前的xml文件如下所示: 45 亚历克斯 查利 33666998565 41301美国280号高速公路,Sylacauga AL 35150 纽约 30 2. 1. 89 安娜 玛丽 336465798465 马萨诸塞州雅芳市纪念大道30号,邮编:2322 洛杉矶 28 2. 1. 我在寻找什么: **//我想要包含所有表行的** 45 亚历克斯 查利 33666998565 41301美国280号高速公路,Sylacauga AL 35150 纽约
45
亚历克斯
查利
33666998565
41301美国280号高速公路,Sylacauga AL 35150
纽约
30
2.
1.
89
安娜
玛丽
336465798465
马萨诸塞州雅芳市纪念大道30号,邮编:2322
洛杉矶
28
2.
1.
我在寻找什么:
**//我想要包含所有表行的**
45
亚历克斯
查利
33666998565
41301美国280号高速公路,Sylacauga AL 35150
纽约
30
2.
1.
****
这是我的代码:
字符串头=”;
XDocument doc=XDocument.Parse(标题);
XElement sheet1=文档根目录;
foreach(dt.AsEnumerable()中的数据行)
{
XElement rd=新XElement(“rd”,新对象[]{
新元素(“id”,第[“id”行]),
新元素(“名称”,行[“名称]),
新的XElement(“最后”,行[“最后]),
新XElement(“电话”,第[“电话”)行),
新元素(“refF”,新对象[]{
新XElement(“ADRESE”,第[“ADRESE”行]),
新XElement(“花旗”,第[“花旗”]行),
}),
新元素(“年龄”,第[“年龄”]行),
新元素(“mp”,新元素(“度”,行[“mp”)),
新元素(“dpa”,第[“dpa”]行)
});
图1.添加(rd);
}
文件保存(文件名);
}
代码将“sheet1”显示为根元素,其中包括“rd”,但实际上我希望它作为“表”中的子元素。我应该如何重新构建它?注意,我只能使用xDocument而不是xmlDocument1-您可以将
表
标记添加到标题
中,如下所示:
string header = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Sheet1><table></table></Sheet1>";
结果
string header = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Sheet1><table></table></Sheet1>";
XDocument doc = XDocument.Parse(header);
XElement table = doc.Root.Element("table");
foreach (DataRow row in dt.AsEnumerable())
{
XElement rd = new XElement("rd", new object[] {
new XElement("id", row["id"]),
new XElement("name", row["name"]),
new XElement("last", row["last"]),
new XElement("phone", row["phone"]),
new XElement("refF", new object[] {
new XElement("adresse", row["adresse"]),
new XElement("citie", row["citie"]),
}),
new XElement("age", row["age"]),
new XElement("mp", new XElement("degree", row["mp"])),
new XElement("dpa", row["dpa"])
});
table.Add(rd);
}
doc.Save(FILENAME);
字符串头=”;
XDocument doc=XDocument.Parse(标题);
XElement table=doc.Root.Element(“表”);
foreach(dt.AsEnumerable()中的数据行)
{
XElement rd=新XElement(“rd”,新对象[]{
新元素(“id”,第[“id”行]),
新元素(“名称”,行[“名称]),
新的XElement(“最后”,行[“最后]),
新XElement(“电话”,第[“电话”)行),
新元素(“refF”,新对象[]{
新XElement(“ADRESE”,第[“ADRESE”行]),
新XElement(“花旗”,第[“花旗”]行),
}),
新元素(“年龄”,第[“年龄”]行),
新元素(“mp”,新元素(“度”,行[“mp”)),
新元素(“dpa”,第[“dpa”]行)
});
表2.添加(rd);
}
文件保存(文件名);
我希望这对您有所帮助。非常感谢。这是一个很好的解决方案,效果很好。如果你能帮我解决的话,我还有一个小问题?@Uzarsef不客气,我可以帮你。向我解释问题所在。我想创建一个按钮,将数据从datagridview导出到此xml文件,而不是将数据集作为表格从excel导入datatable@Uzarsef,不幸的是,我不太了解dataGridView的操作,但我认为您可以搜索如下内容:,我希望这能对你有所帮助。如果同时需要Sheet1和table,则XElement table=doc.subjections(“table”).First();最后从以下位置向表中添加行:sheet1.add(rd);至:表。添加(rd);是的,这就是我现在想要的,我的问题是保存按钮你已经有了一个保存方法。因此,如果您在全局空间中声明doc,您只需在按钮单击中执行doc.Save(文件名)即可。现在,我希望按钮显示Save对话框并选择保存xml文件的路径
string header = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Sheet1></Sheet1>";
XDocument doc = XDocument.Parse(header);
XElement sheet1 = doc.Root;
foreach (DataRow row in dt.AsEnumerable())
{
XElement rd = new XElement("rd", new object[] {
new XElement("id", row["id"]),
new XElement("name", row["name"]),
new XElement("last", row["last"]),
new XElement("phone", row["phone"]),
new XElement("refF", new object[] {
new XElement("adresse", row["adresse"]),
new XElement("citie", row["citie"]),
}),
new XElement("age", row["age"]),
new XElement("mp", new XElement("degree", row["mp"])),
new XElement("dpa", row["dpa"])
});
sheet1.Add(rd);
}
doc.Save(FILENAME);
}
string header = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Sheet1><table></table></Sheet1>";
XDocument doc = XDocument.Parse(header);
XElement table = doc.Root.Element("table");
string header = "<?xml version=\"1.0\" encoding=\"utf-8\" ?><Sheet1><table></table></Sheet1>";
XDocument doc = XDocument.Parse(header);
XElement table = doc.Root.Element("table");
foreach (DataRow row in dt.AsEnumerable())
{
XElement rd = new XElement("rd", new object[] {
new XElement("id", row["id"]),
new XElement("name", row["name"]),
new XElement("last", row["last"]),
new XElement("phone", row["phone"]),
new XElement("refF", new object[] {
new XElement("adresse", row["adresse"]),
new XElement("citie", row["citie"]),
}),
new XElement("age", row["age"]),
new XElement("mp", new XElement("degree", row["mp"])),
new XElement("dpa", row["dpa"])
});
table.Add(rd);
}
doc.Save(FILENAME);