0
我有一个看起来像这样的数据:追加多元素的XmlDocument
List<Deal> deals = new List<Deal>
{
new Deal
{
DealNo = "S001",
DealItem = new List<string> { "A001", "A002", "A003" }
},
new Deal
{
DealNo = "S002",
DealItem = new List<string> { "T001", "T002" }
}
};
而且我想我的输出看起来像这样:
<Resource>
<ResourceID>
<ResourceBody>
<DealNo>S001</DealNo>
<ItemList>
<Item>A001</Item>
<Item>A002</Item>
<Item>A003</Item>
</ItemList>
<DealNo>S002</DealNo>
<ItemList>
<Item>T001</Item>
<Item>T002</Item>
</ItemList>
</ResourceBody>
</ResourceID>
</Resource>
我被困在试图循环通过ItemList元素并添加节点。这是我现在有:
var xdoc = new XmlDocument();
// This structure is from other parts of the system, I can't change this
xdoc.LoadXml("<Resource><ResourceID><ResourceBody></ResourceBody></ResourceID></Resource>");
foreach (var deal in deals)
{
var node = xdoc.CreateNode("element", "DealNo", "");
node.InnerText = deal.DealNo;
var singleNode = xdoc.SelectSingleNode("Resource/ResourceID/ResourceBody");
singleNode.AppendChild(node);
node = xdoc.CreateElement("ItemList");
singleNode = xdoc.SelectSingleNode("Resource/ResourceID/ResourceBody");
singleNode.AppendChild(node);
}
如何循环所有'交易',并追加通过所有ItemList元素?我不得不使用XmlDocument,它是旧代码的一部分。
嘿,谢谢!我的大脑有点卡住了,我真的无法想象那一个。再次感谢:) 现在把这个逻辑转换成C/AL ......(我最初在动态导航中遇到了这个问题,我只是把C#放在这里,因为观众更广泛) – Farid