C# 如何在同一元素中添加多个属性元素?
我想在同一个元素中添加许多具有某些属性的元素。这是我的密码C# 如何在同一元素中添加多个属性元素?,c#,xml,C#,Xml,我想在同一个元素中添加许多具有某些属性的元素。这是我的密码 XmlDocument doc = new XmlDocument(); XmlElement root = doc.CreateElement("ABC"); doc.AppendChild(root); for (int i = 0; i < 3; i++) { XmlElement anotherid; XmlElement id; id = doc.CreateElement("DEF");
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("ABC");
doc.AppendChild(root);
for (int i = 0; i < 3; i++)
{
XmlElement anotherid;
XmlElement id;
id = doc.CreateElement("DEF");
anotherid = doc.CreateElement("GEH");
anotherid.SetAttribute("Name", "");
anotherid.SetAttribute("Button", "");
root.AppendChild(id);
id.AppendChild(anotherid);
}
doc.Save(@"C:\dummyxml.xml");
XmlDocument doc=新的XmlDocument();
xmlementroot=doc.CreateElement(“ABC”);
doc.AppendChild(根);
对于(int i=0;i<3;i++)
{
另一种;
xml元素id;
id=doc.CreateElement(“DEF”);
anotherid=doc.CreateElement(“GEH”);
SetAttribute(“名称”,“名称”);
SetAttribute(“按钮”和“”);
root.AppendChild(id);
id.AppendChild(另一个);
}
doc.Save(@“C:\dummyxml.xml”);
它给出如下输出:
<ABC>
<DEF>
<GEH Name="" Button="" />
</DEF>
<DEF>
<GEH Name="" Button="" />
</DEF>
<DEF>
<GEH Name="" Button="" />
</DEF>
</ABC>
但我想要像这样的输出
<ABC>
<DEF>
<GEH Name="" Button="" />
<GEH Name="" Button=""/>
<GEH Name="" Button=""/>
</DEF>
</ABC>
请不要忽略循环。我只想要带有for循环的输出。请引导我。提前感谢。基本上,for循环的
应该只包含GEH
元素的创建。您可以将DEF
元素的创建移动到循环外部
但是,我还强烈建议使用LINQ转换为XML,而不是旧的XMLDocumentAPI。。。这要简单得多。在本例中,代码如下所示:
var doc = new XDocument(
new XElement("ABC",
new XElement("DEF",
Enumerable.Range(1, 3)
.Select(ignored => new XElement("GEH",
new XAttribute("Name", ""),
new XAttribute("Button", "")
)
)
)
);
将DEF
元素的声明向上移动一级
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("ABC");
doc.AppendChild(root);
XmlElement id = doc.CreateElement("DEF");
for (int i = 0; i < 3; i++)
{
XmlElement anotherid;
anotherid = doc.CreateElement("GEH");
anotherid.SetAttribute("Name", "");
anotherid.SetAttribute("Button", "");
root.AppendChild(id);
id.AppendChild(anotherid);
}
doc.Save("dummyxml.xml");
XmlDocument doc=新的XmlDocument();
xmlementroot=doc.CreateElement(“ABC”);
doc.AppendChild(根);
xmlementid=doc.CreateElement(“DEF”);
对于(int i=0;i<3;i++)
{
另一种;
anotherid=doc.CreateElement(“GEH”);
SetAttribute(“名称”,“名称”);
SetAttribute(“按钮”和“”);
root.AppendChild(id);
id.AppendChild(另一个);
}
doc.Save(“dummyxml.xml”);
产生
<ABC>
<DEF>
<GEH Name="" Button="" />
<GEH Name="" Button="" />
<GEH Name="" Button="" />
</DEF>
</ABC>
刚刚将代码移到for循环之外
XmlDocument doc = new XmlDocument();
XmlElement root = doc.CreateElement("ABC");
doc.AppendChild(root);
XmlElement anotherid;
XmlElement id;
id = doc.CreateElement("DEF");
for (int i = 0; i < 3; i++)
{
anotherid = doc.CreateElement("GEH");
anotherid.SetAttribute("Name", "");
anotherid.SetAttribute("Button", "");
root.AppendChild(id);
id.AppendChild(anotherid);
}
doc.Save(@"C:\dummyxml.xml");
XmlDocument doc=新的XmlDocument();
xmlementroot=doc.CreateElement(“ABC”);
doc.AppendChild(根);
另一种;
xml元素id;
id=doc.CreateElement(“DEF”);
对于(int i=0;i<3;i++)
{
anotherid=doc.CreateElement(“GEH”);
SetAttribute(“名称”,“名称”);
SetAttribute(“按钮”和“”);
root.AppendChild(id);
id.AppendChild(另一个);
}
doc.Save(@“C:\dummyxml.xml”);