对象引用未设置为具有XDocument的对象的实例

时间:2009-08-28 14:00:14

标签: c# linq-to-xml

此代码有什么问题

XDocument xDocument = new XDocument();

for (int i = 0; i < 5; i++)

{

xDocument.Element("PlayerCodes").Add(

new XElement("PlayerCode", i.ToString())

);

}

xDocument.Save(@"c:\test.xml");

我收到错误“对象引用未设置为对象的实例。”

基本上我想创建xml文件。它不存在

请帮忙

3 个答案:

答案 0 :(得分:6)

文档中没有任何内容,因此XDocument.Element(“PlayerCodes”)显示为null。

首先加载文档。

或者这样做

XDocument xDocument = new XDocument();

for (int i = 0; i < 5; i++)        
{
  if( XDocument.Element("PlayerCodes") == null)
  {
    XDocument.Add(new XElement("PlayerCodes"));
  }

  xDocument.Element("PlayerCodes").Add(new XElement("PlayerCode", i.ToString()));

}

xDocument.Save(@"c:\test.xml");

答案 1 :(得分:2)

创建同一文档的更简洁方法如下所示:

var doc = new XDocument(
    new XElement("PlayerCodes",
        Enumerable.Range(0, 5).Select(i => new XElement("PlayerCode", i))
    )
);

doc.Save(@"c:\test.xml");

答案 2 :(得分:0)

您应首先将“PlayerCodes”元素添加到XDocument中。