C#使用List <t>获取Xelement

时间:2016-02-06 22:45:21

标签: c# xml

我有List对象。我需要填充XElement块使用列表的对象。

实施例: 代码:

var x = new XElement("root");
foreach (var rsltn in rsltnList)
{
    x.Add(CreateRsltnXml(rsltn));
}

XML:

<Root>
   <MyXmlOfObject1>...</MyXmlOfObject1>
   <MyXmlOfObject2>...</MyXmlOfObject2>
   ...
   <MyXmlOfObjectN>...</MyXmlOfObjectN>
</Root>

有没有更好的方法来创建一个没有“Root”元素的最终XML,或者如何使用返回下一个XML的“for”(或其他循环)更好地创建XML?

XML:

<MyXmlOfObject1>...</MyXmlOfObject1>
<MyXmlOfObject2>...</MyXmlOfObject2>
   ...
<MyXmlOfObjectN>...</MyXmlOfObjectN>

1 个答案:

答案 0 :(得分:0)

谢谢大家的帮助 我找到了解决问题的方法。为了获得结果,我需要使用

z.Add (x.Elements ());

示例:

var z = XElement("MainXml");
z.Add (x.Elements ());

我有很多XML类型块:

<Root>
   <MyXmlOfObject1>...</MyXmlOfObject1>
   <MyXmlOfObject2>...</MyXmlOfObject2>
   ...
   <MyXmlOfObjectN>...</MyXmlOfObjectN>
</Root>

但我不需要标记<Root>,因为<Root>中的标记需要插入到另一个XML中。使用x.Elements();命令,我得到所有没有root的子元素,这是必需的。

总得到我需要的结果:

<MainXml>
   <MainXmlTag1>...</MainXmlTag1>
   <MainXmlTag2>...</MainXmlTag2>
   <MyXmlOfObject1>...</MyXmlOfObject1>
   <MyXmlOfObject2>...</MyXmlOfObject2>
   ...
   <MyXmlOfObjectN>...</MyXmlOfObjectN>
   <MainXmlTag4>...</MainXmlTag4>
   <MainXmlTagN>...</MainXmlTagN>
</MainXml>

如果有人可以提供将XML块(XElements)插入另一个XML(XElement)的最佳解决方案 - 我将很乐意尝试您的选择。