HTMLAgilityPack은 InnerHTML에서 구문 분석합니다.

c# html-agility-pack

문제

<div>
<b>Token1</b>
Token2
<b>Token3</b>
</div>

div에서 Token2를 추출하려고합니다.

Token1과 Token3을 함께 관리 할 수 ​​있습니다.

HtmlNodeCollection headerFooter = doc.DocumentNode.SelectNodes("//div//b");

HTMLAgilityPack으로 Token2를 직접 추출하려면 어떻게해야합니까?

하나의 더러운 옵션은 Token1과 Token2를 doc.DocumentNode.SelectNodes ( "// div")의 string.empty로 대체하는 것입니다. InnerText,하지만 HTMLAgilityPack으로 더 깨끗한 방식으로 처리 할 수 ​​있다고 상상해보십시오.

전문가 답변

텍스트는 텍스트 노드에 있습니다. 그래서 당신은 "// div / text ()"를보고 결합 할 수 있어야합니다 :

StringBuilder sb = new StringBuilder();
foreach (HtmlAgilityPack.HtmlTextNode node in
      doc.DocumentNode.SelectNodes("//div/text()"))
{
    sb.Append(node.Text.Trim());
}
string s = sb.ToString();


아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.
아래 라이선스: CC-BY-SA with attribution
와 제휴하지 않음 Stack Overflow
이 KB는 합법적입니까? 예, 이유를 알아보십시오.