У меня есть method
, который анализирует файл XML
.C# XML to linq error if null
Мой метод:
public static List<UpperLevelGPS> ParseXml(string Document)
{
List<UpperLevelGPS> result = new List<UpperLevelGPS>();
result.Clear();
doc = XDocument.Load(Document);
result = (from n in doc.Descendants("level")
select new UpperLevelGPS()
{
CurrentLevel = int.Parse(n.Attribute("CurrentLevel").Value),
TeleNodes = (from l in n.Element("UpperLevelGPSs").Elements("UpperLevelGPS")
select new TeleNodes()
{
id = (int)(l.Attribute("id")),
UpperLevelGPSMapID = (int)l.Attribute("UpperLevelGPSMapID"),
DestinationMapID = (int)l.Attribute("DestinationMapID"),
HostelID = (int)l.Attribute("HostelID"),
x = (float)l.Attribute("x"),
y = (float)l.Attribute("y"),
z = (float)l.Attribute("z")
}).ToList()
}).ToList();
return result;
}
Узел UpperLevelGPSs
не существует ВСЕГДА мой XML
файл, так что выше query
не удается. Как я могу поймать и обработать событие null
?
Как насчет использования тернарного оператора '?'? 'a! = null? (int) a: 0; ' – Eser
Можете ли вы показать, как это делается в моем коде? – user3787774
О, я вижу, я ошибся в своем вопросе. Я имел в виду, что узел «UpperLevelGPSs» - это тот, который обычно не существует. – user3787774