Код HTML:
<b> CAR </b>
<br></br>
Car is something you can drive.
<br></br>
<br></br>
Код 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;
}
Что мне удалось получить: CAR
Мне нужно получить:
АВТОМОБИЛЬ
Автомобиль - это то, чем вы можете управлять.
Какие-либо предложения? Я попытался добавить следующие узлы, но я дал NullReferenceExceptions: // // b [contains (text (), 'CAR') / br] "и" // b [contains (text (), 'CAR') / br / ш]»
Заранее спасибо. PS.I Хотел бы избежать Regex ..
XPATH чувствителен к регистру (подробнее см. Здесь: возможно ли игнорировать случай с использованием xpath и c #? ), А вторая фраза, содержащая «Автомобиль», не является дочерним элементом B. Вы можете заставить его работать следующим образом:
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);
}
В консольном приложении он выведет это:
CAR
Car is something you can drive.