LINQ to XML Append Data抛出空引用异常

时间:2012-01-10 15:49:20

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

这是我有一个xml文件的问题,我试图将数据附加到。我正在使用LINQ to XML,我使用的代码如下:

    public void AppendSalesXMLData(Company company)
    {
        string FileName = "TestSales";
        string OrgID = company.OrgID.ToString();
        string SaleID = company.OrgSales[company.OrgSales.Count - 1].SaleID.ToString();

        if (!File.Exists(String.Format(@"C:\Data-Source\trunk\Applications\VintageSiteInspector\XML\{0}.xml", FileName)))
        {
            CreateXMLFile(FileName);
        }
        XDocument thisDoc = XDocument.Load(String.Format(@"C:\Data-Source\trunk\Applications\VintageSiteInspector\XML\{0}.xml", FileName));

        <!------- The following line throws an exception every time. ----->
        thisDoc.Element(FileName).Add(new XElement("Sale")); 


        thisDoc.Save(String.Format(@"C:\Data-Source\trunk\Applications\VintageSiteInspector\XML\{0}.xml", FileName));
    }

我正在打开的XML文件是

<?xml version="1.0" encoding="utf-8"?>
<root>
 <TestSales></TestSales>
</root>

我只是不明白为什么我会得到一个空引用异常。

1 个答案:

答案 0 :(得分:0)

Element指的是直接子女(在您的情况下为root,而不是TestSale)。请尝试Descendants

thisDoc.Descendants(FileName).First().Add(new XElement("Sale"));

或者,当你知道XML树时,你也可以像这样简单地走它:

thisDoc.Element("root").Element(FileName).Add(new XElement("Sale"));