2017-01-27 2 views
0

Je suis actuellement en train d'essayer de tirer des données à partir d'un site Web, et souvent les données dans cette div est assez standard. Parfois, l'identifiant entré pour obtenir la page est erronée, donc il affichera une page d'erreur UPS et retournera la valeur comme nulle. Je veux être capable de détecter quand il est nul pour que je puisse le gérer de manière appropriée, mais quand j'essaye de le faire cela me donne une erreur: NullReferenceException - Référence d'objet non définie à une instance d'un objet. Que dois-je faire pour gérer ces valeurs nulles?Comment puis-je sélectionner des données d'une page Web en utilisant HTML Agility Pack, mais compte tenu du fait que les données peuvent être nulles?

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); 

Répondre

0

Qu'entendez-vous par halding ces nulls?

Vous pouvez vérifier si InnerText est nul ou vide en utilisant string.IsNullOrEmpty(divData.InnerText)

Mais si c'est null alors vous ne pouvez pas utiliser .Replace

0

Avez-vous déboguer à travers elle? Vous devez vérifier si divData est nul avant de vérifier InnerText

Remplacer

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

avec

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

Aussi, avez-vous dire en fait à faire:

divData.InnerText == "null" 

ou avez-vous dire:

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(); 
    } 
}