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 [(텍스트 (), 'CAR'포함) / br / br] "
미리 감사드립니다. 추신 : 나는 정규 표현식을 피하고 싶다.
XPATH는 대소 문자를 구분합니다 (여기에 대한 자세한 내용은 xpath 및 c #를 사용하여 대소 문자를 무시할 수 있습니까? ) 'Car'가 포함 된 두 번째 구는 하위 요소가 아닌 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.