我正在尝试写入某个结构中的xml文件,但遇到了一些问题。我想将几个XElements写入XML中的某个XElement。例如:
foreach (XMLFieldInfo Field in XMLFields)
Fields.Add(new XElement("Field", new XElement("Name", Field.FieldID), new XElement("InclusionItems", Field.InclusionListToWriteToXML), new XElement("ExclusionItems", Field.ExclusionListToWriteToXML)));
这里我构建了几个想要作为子节点添加到xml中另一个节点的XElements。
XElement LockboxConfigTree = new XElement("Student", new XElement("ID", cmbID.Text.Trim()), .................);
......是上面创建的列表中的每个元素都将添加但我不知道有多少元素,所以我无法找到将其添加到超级节点的方法。
以上是我想要添加上面创建的子节点的超级节点。问题是,我似乎无法得到正确的逻辑,所以最终,xml将如下所示:
<Student>
<ID></ID>
<Field>
<Name></Name>
<InclusionList></InclusionList>
<ExclusionList></InclusionList>
</Field>
</Student>
答案 0 :(得分:2)
XElement constructor支持enumerable个参数。
您只需传递Fields
变量:
XElement LockboxConfigTree = new XElement("Student",
new XElement("ID", cmbID.Text.Trim()),
Fields);
实际上,使用LINQ,您甚至不需要Fields
变量:
XElement LockboxConfigTree
= new XElement("Student",
new XElement("ID", cmbID.Text.Trim()),
from field in XMLFields
select new XElement("Field",
new XElement("Name", field.FieldID),
new XElement("InclusionItems",
field.InclusionListToWriteToXML),
new XElement("ExclusionItems",
field.ExclusionListToWriteToXML)));