这是我有一个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>
我只是不明白为什么我会得到一个空引用异常。
答案 0 :(得分:0)
Element
指的是直接子女(在您的情况下为root
,而不是TestSale
)。请尝试Descendants
:
thisDoc.Descendants(FileName).First().Add(new XElement("Sale"));
或者,当你知道XML树时,你也可以像这样简单地走它:
thisDoc.Element("root").Element(FileName).Add(new XElement("Sale"));