這會引發空異常,如果是一些在XML文件中的元素缺失的 - 我不想得到這個例外 - 我想添加空字符串列表數據旁邊缺失元素
InstrumentDescription inputFile = InstrumentDescription.Load(openFileDialog1.FileName);
var queryManufacturer = from dataManufaturer in
inputFile.Identification.Manufacturers.Manufacturer
select new
{
dataManufaturer.name,
dataManufaturer.cageCode,
dataManufaturer.FaxNumber,
dataManufaturer.URL.OriginalString
};
foreach (var a in queryManufacturer)
{
data.Add(a.name);
if (a.cageCode == null) data.Add("");
else data.Add(a.cageCode);
if (a.FaxNumber == null) data.Add("");
else data.Add(a.FaxNumber);
if (a.OriginalString == null) data.Add("");
else data.Add(a.OriginalString);
}
我試過somen這樣的事情 - 但它不起作用
select new
{
name = dataManufaturer.name ?? "",
cageCode = dataManufaturer.cageCode ?? "",
FaxNumber = dataManufaturer.FaxNumber ?? "",
OriginalString = dataManufaturer.URL!=null ? dataManufaturer.URL.OriginalString : ""
};
我想有一個空字符串,如果一些元素丟失,不會得到異常。
我解決了它!
在選擇我只用select new { dataManufacturer }
不是這些所有可能的元素,當我加入這裏僅列出測試,如果例如dataManufacturer.name爲空或不是
這並不完全清楚XML到底發生了什麼,也不完全是NullReferenceException發生的地方。請參閱http://tinyurl.com/so-hints – 2011-05-29 08:33:26
Xml - 我有一個XSD方案翻譯成代碼 - 在我稱之爲加載的代碼中 - 我工作的很好,當我讀取文件中的所有元素時,但至少有至少一個丟失,它拋出異常後選擇 - 添加任何東西沒有列出 – 2011-05-29 08:38:52
我能看到的唯一的原因是,如果'dataManufaturer.URL.OriginalString'中的URL爲空。但是當你添加select語句時,你說它沒有工作?你有沒有得到相同的錯誤或其他東西?除非整個dataManufaturer爲空。 – aL3891 2011-05-29 08:44:04