Code HTML:
<b> CAR </b>
<br></br>
Car is something you can drive.
<br></br>
<br></br>
Code C #:
HtmlAgilityPack.HtmlDocument doc = new HtmlWeb().Load("http://website.com/x.html");
if (doc != null)
{
HtmlNode link = doc.DocumentNode.SelectSingleNode("//b[contains(text(), 'CAR')]");
webBrowser1.DocumentText = link.InnerText;
webBrowser1.AllowNavigation = true;
webBrowser1.ScriptErrorsSuppressed = true;
webBrowser1.Visible = true;
}
Ce que j'ai réussi à obtenir: CAR
J'ai besoin d'avoir:
VOITURE
La voiture est quelque chose que vous pouvez conduire.
Aucune suggestion? J'ai essayé d'ajouter les nœuds suivants, mais j'ai donné NullReferenceExceptions: "// b [contient (text (), 'CAR') / br]" et "// b [contient (text (), 'CAR')) / br / br] "
Merci d'avance. PS.I aimerait éviter Regex ..
XPATH est sensible à la casse (voir ici pour plus d'informations: est-il possible d'ignorer la casse à l'aide de xpath et c #? ) Plus la deuxième phrase contenant 'Car' n'est pas un enfant, mais un élément B. Vous pourriez le faire fonctionner comme ceci:
HtmlDocument doc = new HtmlWeb().Load("http://website.com/x.html");
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//text()[contains(translate(., 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz'), 'car')]"))
{
Console.WriteLine(node.InnerText);
}
Dans une application console, cela produira ceci:
CAR
Car is something you can drive.