如何动态填充XElement(linq到xml)

时间:2017-01-13 21:58:53

标签: c# xml linq linq-to-xml

有没有办法可以动态添加新的XElement来形成子节点,如下例所示?

XElement xEl = new XElement(
                new XElement("Root",
                  // ** Is there a way I can do this:  
                 //  for(MyObject mObj in myObjects) {
                 //     if (IsXmlObj(mObj)){
                 //         new XElement(mObj.Name, mObj.Value);
                 //       }
                 //   }
                );

我想迭代一个对象列表来形成子节点。

如果我现在修改迭代部分变为:

,该怎么办?
 //  for(MyObject mObj in myObjects) {
                 //     if (IsXmlObj(mObj)){
                 //         if (mObject.Name=="Small"){ mObject.Name="Big";}
                 //         new XElement(mObj.Name, mObj.Value);
                 //       }
                 //   }

1 个答案:

答案 0 :(得分:2)

以这种方式使用Select

var xEl = new XElement("Root",myObjects.Where(mObj=>IsXmlObj(mObj))
                                       .Select(mObj=> new XElement(mObj.Name, mObj.Value)));