Xml.Linq:将XNode添加到XDocument

时间:2011-07-12 12:22:55

标签: .net xml linq

我必须向XML导出一个BusinessObjects列表 - myBOs

我之前使用XmlDocument完成了这样的任务。

现在,我读到System.Xml.Linq使用起来更灵活。所以我拿了XDocument。

现在逻辑是以下(伪代码):

Method ExportBOs(myBOs, fileName) 
  xDoc = New XDocument          ' create
  foreach bo in myBOs
    xDoc.Add(GetMyBOAsNode(bo)) ' build
  xDoc.Save(filename)           ' save


Method GetMyBOAsNode(myBo) as XNode
  result = New XNode(myBo.Name) ' ??? don't work
  Return result      

有什么方法可以处理?

2 个答案:

答案 0 :(得分:5)

你有两个问题:

  • XNode是抽象的。我怀疑你实际上想要创建一个XElement
  • 您不能拥有多个顶级元素。我怀疑您要创建单个根XElement,将其添加到文档中,然后将多个子元素添加到 根元素。

答案 1 :(得分:3)

首先,您需要拥有一个根元素(不允许多个根)。

其次,使用System.Xml.Linq.XElement

public void ExportBOs(IEnumerable<myBO> myBOs, string fileName)
{
    var root = new XElement("BOs");

    foreach(var bo in myBOs){
        root.Add(new XElement("BO", bo.Name));
    }

    root.Save(filePath);
}