私は別のSetタグから別の値を取得したい複雑なXMLファイルを持っています。最後に、値をCSVファイルに取ります。XPathSelectElementを定義中にエラーが発生しました。C#
私は以下のコードを介して第1の要素を取得しようとしましたが、エラー
とNullReferenceExceptionを取得している
<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
の値を取得しようとしていますxml file format
を参照してください。ハンドルされていません オブジェクト参照がオブジェクトのインスタンスに設定されていません
コード
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