2017-01-27 8 views
0

私は現在、ウェブサイトからデータを取得しようとしていますが、この部門のデータはかなり標準的なデータであることがよくあります。場合によっては、ページを取得するために入力されたIDが間違っているため、エラーのUPSページが表示され、値がnullとして返されます。私はそれが適切に扱うことができるようにnullであることを検出できるようにしたいが、これをしようとするとエラーが出る。NullReferenceException - オブジェクト参照がオブジェクトのインスタンスに設定されていない。これらのnullを処理するには何が必要ですか?HTMLアジリティ・パックを使用してWebページからデータを選択する方法はありますが、データがnullである可能性がありますか?

HtmlWeb web = new HtmlWeb(); 
HtmlDocument doc = web.Load("https://wwwapps.ups.com/WebTracking/track?track=yes&trackNums=" + tracking); 
var divData = doc.GetElementbyId("tt_spStatus"); 
if (divData.InnerText == "null") 
{ 
    status = divData.InnerText.Replace("\r", "").Replace("\t", "").Replace("\n", "").Trim(); 
} 


Console.WriteLine(status); 

答えて

0

これらのヌルを無効にすることはどういう意味ですか?

InnerTextプロパティがstring.IsNullOrEmpty(divData.InnerText)

を使用して、nullまたは空であるかどうかをチェックすることができます。しかし、それはnullだ場合は、それを介してデバッグでしたあなたは.Replace

0

を使用することはできませんか?あなたはdivDataInnerText

をチェックする前にnullであるかどうかを確認する必要があり、あなたが実際に行うことを意味した、また

var divData = doc.GetElementbyId("tt_spStatus"); 
if (divData == null) 
{ 
    // Handle your business 
} 

var divData = doc.GetElementbyId("tt_spStatus"); 

を交換してください:

​​

またはuをしました平均:

divData.InnerText == null 
0
var divData = doc.GetElementbyId("tt_spStatus"); 
if (divData != null) 
{ 
    if (divData.InnerText == null) 
    { 
     status = divData.InnerText.Replace("\r", "").Replace("\t", "").Replace("\n", "").Trim(); 
    } 
} 
関連する問題