我已經寫了一個c#函數來解析XML流。 我的XML可以有幾個節點。在XML解析中沒有nullReferenceException
例子:
<Stream>
<One>nnn</One>
<Two>iii</Two>
<Three>jjj</Three>
</Stream>
但有時,它是:
<Stream>
<Two>iii</Two>
</Stream>
這裏是我的C#代碼:
var XML = from item in XElement.Parse(strXMLStream).Descendants("Stream") select item;
string strOne = string.Empty;
string strTwo = string.Empty;
string strThree = string.Empty;
if ((item.Element("One").Value != "")
{
strOne = item.Element("One").Value;
}
if ((item.Element("Two").Value != "")
{
strTwo = item.Element("Two").Value;
}
if ((item.Element("Three").Value != "")
{
strThree = item.Element("Three").Value;
}
有了這個代碼,如果我流滿(節點在,兩個和三個),沒有問題!但是,如果我的Stream只有節點「Two」,我會得到一個NullReferenceException
。
有沒有辦法避免這個異常(我不能改變我的流)。
感謝很多:)
我認爲這個問題的答案將幫助您 - http://stackoverflow.com/questions/2630192/c-sharp-check-an - 元素-存在,使用時 - - LINQ到XML。基本上你必須在嘗試引用它們的值之前檢查是否存在缺少的'Element's。 –