我有一个复杂的XML文件,我想从不同的Set标记中检索不同的值。最后,我需要将这些值传递给一个CSV文件。定义XPathSelectElement时发生错误c#
我试图检索
<szItemID>3268750004533</szItemID> from the first set
<lMerchandiseStructureID>40</lMerchandiseStructureID> from the second set
<szDesc>PHG VIANDE SECHEE DE</szDesc> from the third set
<dPackingUnitPriceAmount>75</dPackingUnitPriceAmount> from the fourth tag
我试图通过下面的代码检索第一个元素的值,但得到一个错误
的NullReferenceException未处理 未将对象引用设置为对象的实例
代码
XmlDocument document = new XmlDocument();
document.Load(@"D:\\xml_1.xml");
string myXmlString = document.OuterXml.ToString();
XElement xml = XElement.Parse(myXmlString);
Console.WriteLine(string.Format("{0}",xml.XPathSelectElement("/UpdateDB/Transaction/Insert/Set/szItemID").Value));
请帮
StringBuilder dataToBeWritten = new StringBuilder();
var doc = XDocument.Load(@"D:\xml_2.xml");
foreach (var trans in doc.Descendants("Transaction"))
{
var val3 = (string)doc.Descendants("Set").Elements("szItemID").First();
var val4 = (string)doc.Descendants("Set").Elements("lMerchandiseStructureID").First();
var val5 = (string)doc.Descendants("Set").Elements("szName").First();
var val6 = (string)doc.Descendants("Set").Elements("lRetailStoreID").First();
var val7 = (string)doc.Descendants("Set").Elements("bIsContract").First();
dataToBeWritten.Append(val3);
dataToBeWritten.Append(",");
dataToBeWritten.Append(val4);
dataToBeWritten.Append(",");
dataToBeWritten.Append(val5);
dataToBeWritten.Append(",");
dataToBeWritten.Append(val6);
dataToBeWritten.Append(",");
dataToBeWritten.Append(val7);
dataToBeWritten.Append(",");
dataToBeWritten.Append(Environment.NewLine);
}
Console.WriteLine(dataToBeWritten.ToString());
Console.ReadLine();
var testpath = @"D:\\Lutchmee2.csv";
File.WriteAllText(testpath, dataToBeWritten.ToString());
的【什么是一个NullReferenceException可能的复制,以及如何做我修复它?](https://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Fabiano