LINQ to XML Append Data генерирует исключение нулевой ссылки - PullRequest
0 голосов
/ 10 января 2012

Вот проблема, у меня есть 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 голосов
/ 10 января 2012

Element относится к прямому ребенку (который в вашем случае будет root, а не TestSale). Попробуйте Descendants вместо:

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

В качестве альтернативы, когда вы знаете дерево XML, вы также можете просто просмотреть его так:

thisDoc.Element("root").Element(FileName).Add(new XElement("Sale"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...