【发布时间】:2018-07-03 20:04:34
【问题描述】:
我正在使用 C# 中的 XDocument 创建 XML 文档。我正在遍历包含另一个集合的对象集合。这是我正在尝试创建的示例。
<Documents>
<Document>
<Field_1></Field_1>
<Field_2></Field_2>
<Field_3></Field_3>
<Field_4></Field_4>
<Address>
<Item1></Item1>
<Item2></Item2>
</Address>
</Document>
</Documents>
现在使用下面的代码,我可以在主对象上使用我的 foreach 循环添加所有文档及其字段,但我无法使用第一个 foreach 内的第二个 foreach 循环为每个文档添加关联的地址环形。我似乎遇到的主要问题是当我遇到一个文档时,比如我的集合中有 5 个文档,第二个 foreach 循环将第 5 个文档的地址放入第一个文档地址块中。我需要它与 5 号文件而不是 1 号文件一起使用。
XDocument xmlDoc = XDocument.Load(Path.Combine(@"C:\XML_Template\", "XMLTemplate.xml"));
XElement rootElement = xmlDoc.Element("DOCUMENTS");
foreach (var pdf in PDFDocInfo) {
rootElement.Add(
new XElement("DOCUMENT",
new XElement("Field_1", pdf.F1),
new XElement("Field_2", pdf.F2),
new XElement("Field_3", pdf.F3),
new XElement("Field_4", pdf.F4),
));
foreach (var address in pdf.Address) {
rootElement.Element("DOCUMENT").Add(
new XElement("Address",
new XElement("Item1", address.I1),
new XElement("Item2", address.I2));
}
}
感谢任何帮助。
【问题讨论】:
标签: c# xml linq-to-xml xelement