XElement =比;在运行时添加子节点
本文关键字:运行时 添加 子节点 XElement | 更新日期: 2023-09-27 18:18:28
那么让我们假设这是我想要实现的:
<root>
<name>AAAA</name>
<last>BBBB</last>
<children>
<child>
<name>XXX</name>
<last>TTT</last>
</child>
<child>
<name>OOO</name>
<last>PPP</last>
</child>
</children>
</root>
不确定使用XElement是否是最简单的方法
但这是我目前所看到的:
XElement x = new XElement("root",
new XElement("name", "AAA"),
new XElement("last", "BBB"));
现在我必须根据我所拥有的一些数据添加"children"。
可以有1、2、3、4…
所以我需要遍历列表来获取每一个子元素
foreach (Children c in family)
{
x.Add(new XElement("child",
new XElement("name", "XXX"),
new XElement("last", "TTT"));
}
问题:
这样做,我将错过"CHILDREN父节点"。如果我只是在foreach之前添加它,它将被渲染为一个封闭节点
<children/>
这不是我们想要的。
问题:
我如何添加到第一部分的父节点和尽可能多的我的列表?
试试这个:
var x = new XElement("root",
new XElement("name", "AAA"),
new XElement("last", "BBB"),
new XElement("children",
from c in family
select new XElement("child",
new XElement("name", "XXX"),
new XElement("last", "TTT")
)
)
);
XElement root = new XElement("root",
new XElement("name", "AAA"),
new XElement("last", "BBB"));
XElement children = new XElement("children");
foreach (Children c in family)
{
children.Add(new XElement("child",
new XElement("name", c.Name),
new XElement("last", c.Last));
}
root.Add(children);
var children = new XElement("children");
XElement x = new XElement("root",
new XElement("name", "AAA"),
new XElement("last", "BBB"),
children);
foreach (Children c in family)
{
children.Add(new XElement("child",
new XElement("name", "XXX"),
new XElement("last", "TTT"));
}