【问题标题】:How to dynamically populate XElement (linq to xml)如何动态填充 XElement(linq 到 xml)
【发布时间】:2017-01-13 21:58:53
【问题描述】:

有没有一种方法可以动态添加新的 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);
                 //       }
                 //   }

【问题讨论】:

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


    【解决方案1】:

    这样使用Select

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

    【讨论】:

    • 这是一个很好的解决方案!但是我已经修改了问题以包含一个 if 语句
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多