将新节点添加到xml树

时间:2010-03-26 23:12:18

标签: c# xml linq

我正在生成一个xml树:

var root = new XElement("Root");
for(int i =0;i<3;i++)
{ 
   var sub0lvl = new XElement(String.Format("sub{0}",i));
   root.Add(sub0lvl);
   for(int j=0;j<2;j++)
   {
     sub0lvl.Add(new XElement(String.Format("subsub{0}",i)));
   }
}

此代码生成以下xml树:

<Root>
  <sub0>
    <subsub0 />
    <subsub0 />
  </sub0>
  <sub1>
    <subsub1 />
    <subsub1 />
  </sub1>
  <sub2>
    <subsub2 />
    <subsub2 />
  </sub2>
  <sub8>
    <subsub123 />
  </sub8>
</Root>

我想使用类似

的代码向sub1节点添加新元素
root.Add(new XElement("sub1",new XElement("subsub123")));

但是这段代码并不是我想要的。它只是向root添加新的相同节点。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:4)

使用:

root.Element("sub1").Add(new XElement("subsub123"));

基本上是找到现有的 sub1元素并向其添加新的子元素,而不是添加新的sub1元素。