Я нахожусь в процессе создания документа XML с использованием XDocument в C #. Я перебираю коллекцию объектов, в которой есть другая коллекция. Вот пример того, что я пытаюсь создать.
<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-го документа в блок адреса 1-го документа. Мне нужно, чтобы оно соответствовало 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));
}
}
Любая помощь приветствуется.