2017-12-03 2 views
-3

Das Problem ist, es läuft nur einmal in 20 Versuchen oder so richtig und es ist völlig zufällig. Couldnt die Situation behandeln ... Hilfe wird geschätzt werden ^^htmlagilitypack selectsinglenode null zurück

 WebClient client = new WebClient(); 

     client.Encoding = Encoding.UTF8; 
     try 
     { 
      html = client.DownloadString(url); 
     } 
     catch (WebException) 
     { 
      if (MessageBox.Show("url'de hata", "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error) == DialogResult.OK) 
      { 

      } 

     } 

     HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument(); 
     HtmlWeb web = new HtmlWeb(); 

     doc.LoadHtml(html); 

     HtmlNode foo = doc.DocumentNode.SelectSingleNode(Xpath);  

     Listbox1.Items.Add(foo.Attributes["href"].Value); //error here 
     currentPage = (foo.Attributes["href"].Value); 
+0

Bitte fügen Sie ein Beispiel für HTML, wo es funktioniert, und ein Beispiel für HTML, wo es nicht funktioniert. Wenn wir diese Informationen nicht haben, was können wir dann tun, um unsere Sympathien zu zeigen? Ich bezweifle sehr, dass die Methode verfolgt wird. Es gibt einen Grund dafür. –

+0

das Problem ist, es funktioniert und es funktioniert nicht in der gleichen html –

+0

Ich glaube dir nicht. Was hast du getan, um zu bestätigen, dass es immer * genau * das gleiche HTML ist, Charakter für Charakter? Wenn Ihre Antwort lautet: "Ich habe angenommen, dass es sein sollte", ist das nicht die richtige Antwort. Aber zeigen Sie uns den HTML-Code, damit wir selbst sehen können. –

Antwort

0

Sie müssen für Knoten überprüfen ist nicht null. Der Server kann für jede Anfrage eine andere Antwort zurückgeben. Der Server gibt möglicherweise 20 bis 1 Elemente zurück, die Sie möchten. Sind Sie sicher, dass die Inhalte identisch sind? Die Sitzung kann je nach Situation variieren. Stellen Sie sicher, dass die erfolgreichen und nicht erfolgreichen Inhalte gleich sind.

Verwandte Themen