HtmlAgilityPack으로 공백 유지

c# html-agility-pack html-parsing

문제

html Agility Pack 을 사용하여 html 문자열의 텍스트를 강조 표시하려고합니다. 텍스트를 <span class="highlight"> 바꿀 수 있지만 텍스트를 바꿀 때 span 태그 주위의 공백이 사라집니다. 예를 들어, 텍스트가 "This text will be highlighted" 이면 "This text will be<span class='highlighted'>highlighted</span>" 것이고 공백은 span 태그 전에 사라집니다. 스팬 앞뒤의 단어를 스팬 텍스트와 병합합니다. 나는 단순히 다음과 같은 재귀 루프를 수행한다.

  1. 첫 번째 자식 노드 가져 오기
  2. 노드가 #text 인 경우 node.InnerHtml = InnerText.Replace(search_term, span_code)
  3. 노드에 자식 노드가있는 경우 단계 1
  4. 다음 형제 자로 가면 1 단계로갑니다.

그 결과로 HtmlDocumentInnerHtml 을 얻습니다. 나는 전에 넣어 공간을 시도 <span 이후 </span> 하지만, 그들을 제거. 나는 HtmlDocument.OptionWriteEmptyNodes = true; 시도했다 HtmlDocument.OptionWriteEmptyNodes = true; 그것도 작동하지 않았다. 나는 모든 "\n""\t" 문자를 HtmlDocument 를 만들기 전에 그리고 html 문자열을 얻은 후에 공백 문자로 바꿨다.

Html Agility Pack을 사용할 때 공백을 어떻게 보존 할 수 있습니까?

수락 된 답변

실제로 HtmlDocument.OptionWriteEmptyNodes = true; 내가 원하는 것을했다. 나는 지금 깨달았다.




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