2017-07-03 1 views
0

Je suis en train d'analyser HTML, je dois obtenir "texte" de cette partie:HTML Agilité pack Parsing div

<div class="_gdf kno-fb-ctx"> 
    <span data-ved="0ahUKEwjIr9brjO7UAhUnYZoKHda-ALgQ2koIogEoAjAT"> text</span> 
</div> 

Voici mon code C#:

var message = doc.DocumentNode.SelectSingleNode("//div[@class='_gdf kno-fb-ctx']").InnerText; 
Console.WriteLine(message); 

Ce que je suis mal faire?

Répondre

0

Je vois que vous ne sélectionnez pas le noeud 'Span' réel pour lire InnertTex. Vous avez sélectionné div et essayé de lire InnertTex, ce qui ne vous donnera pas le résultat souhaité "Texte". Au lieu de cela, vous pouvez faire comme ci-dessous:

 HtmlAgilityPack.HtmlDocument doc = new HtmlDocument(); 
     doc.LoadHtml("<div class='_gdf kno-fb-ctx'><span data-ved = '0ahUKEwjIr9brjO7UAhUnYZoKHda-ALgQ2koIogEoAjAT'> text </span ></div >"); 
     var text = doc.DocumentNode.SelectSingleNode("//div[@class=\"_gdf kno-fb-ctx\"]//span").InnerText; 
+0

Hmm mais je ne peux pas utiliser .InnerText « gravité \t code \t Description de \t projet \t fichier \t ligne \t d'état de suppression Erreur \t CS1061 \t 'HtmlNodeCollection' ne contient une définition pour 'InnerText' et aucune méthode d'extension 'InnerText' acceptant un premier argument de type 'HtmlNodeCollection' n'a été trouvée (manque-t-il une directive using ou une référence d'assembly? " – Nedvid

+0

Désolé pour cela, pouvez-vous essayer SelectSingleNode au lieu de SelectNodes – Sujith

+0

Ici et ici est le même problème – Nedvid