だから、これが私が達成したいものだと仮定しましょう:
<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"));
今、私は私が持っているいくつかのデータに基づいて「子供」を追加する必要があります。
1,2,3,4 ...
すべての子供を取得するためにリストを反復処理する必要があります
foreach (Children c in family)
{
x.Add(new XElement("child",
new XElement("name", "XXX"),
new XElement("last", "TTT"));
}
この方法を実行すると、「CHILDREN Parent node」が欠落します。 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"));
}