[英]Appending multi-element to 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,它是舊代碼的一部分。
使用您的示例,只需添加一個新循環即可添加您的交易項目:
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");
// Add deal items here...
foreach (string dealItem in deal.DealItem) {
var dealItemNode = xdoc.CreateNode("element", "Item", "");
dealItemNode.InnerText = dealItem;
node.AppendChild(dealItemNode);
}
singleNode.AppendChild(node);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.