HTML 애자일 팩에 웹 페이지를로드하고 DOM이 있습니다. XPath를 사용하여 페이지의 모든 텍스트를 가져오고 싶습니다 (그러나 <script>
태그 내에있는 JavaScript는 제외).
나는 그 안에 <script>
가있는 브랜치 내의 모든 태그를 무시하기 위해 // text ()와 'not'가 필요하다.
나는 노력했다.
doc.DocumentNode.SelectNodes("//text()[not(self::script)]"))
과
doc.DocumentNode.SelectNodes("//text()[not(script)]"))
하지만 둘 다 작동하지 않습니다. 반환하는 노드의 XPath 속성 예는 다음과 같습니다 (스크립트 주목)
/html[1]/body[1]/div[2]/div[4]/div[1]/div[1]/div[1]/div[3]/script[1]/#text[1]
나는이 두 포스트와상의했다.
Html 민첩성 팩으로 HTML에서 모든 텍스트를 가져옵니다 (이것은 좋은 게시물이지만 JS를 가져옵니다)
어떤 제안?
첫 번째 시도는 스크립트 요소 인 모든 텍스트 노드를 거부하고 두 번째 시도는 스크립트 노드 하위가있는 모든 텍스트 노드를 거부합니다. 물론, 두 경우 모두 조건은 사실이 아닙니다.
당신은 당신의 요구 사항을 명확하게 설명하지는 못했지만 부모로서 스크립트 요소를 가진 모든 텍스트 노드를 거부하고 싶습니다.
//text()[not(parent::script)]
또는
//*[not(self::script)]/text()