HTML Quelltext:
<b> CAR </b>
<br></br>
Car is something you can drive.
<br></br>
<br></br>
C # -Code:
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;
}
Was ich bekomme: CAR
Ich benötige:
AUTO
Auto ist etwas, was man fahren kann.
Irgendwelche Vorschläge? Ich habe versucht, die nächsten Knoten hinzuzufügen, aber ich gab NullReferenceExceptions: "// b [enthält (text (), 'CAR') / br]" und "// b [enthält (text (), 'CAR') / br / br) "
Danke im Voraus. PS.Ich möchte Regex vermeiden ..
XPATH ist Groß-und Kleinschreibung (siehe hier für mehr darüber: Ist es möglich, Groß- / Kleinschreibung mit Xpath und c # zu ignorieren? ) Und die zweite Phrase, die "Car" enthält, ist kein Kind ein B-Element. Du könntest es so funktionieren lassen:
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);
}
In einer Konsolenanwendung gibt es Folgendes aus:
CAR
Car is something you can drive.