2014-11-18 3 views
0

HTML 민첩성 팩을 사용하고 있는데 태그가없는 html 문서에서 일부 html 노드의 컬렉션을 가져와야하는 Scenerio가 있습니다. 이 외에도 html 요소의 전체 모음이 필요합니다. 예를 들어 내 HTML 문서는 다음과 같을 수 있습니다.HTML 민첩성으로 특정 하위 태그가없는 html 노드를 추출 하시겠습니까?

<p> This is first free text </p> 

<p> <button class='testButton'> this is first button </button> </p> 

<strong> <p> This is second free text </p> </strong> 

<button class='testButton'> this is second button </button> 

이제 첫 번째 및 두 번째 자유 텍스트 태그의 html 노드 모음이 필요합니다. Currenly 나는

html.DocumentNode.SelectNodes(@"//button[starts-with(@id, 'btn~~')]"); 

지금 나는 또한 버튼 태그 이외의 을 가진 모든 노드의 수집이 필요 XPath를 사용하여 문서의 모든 버튼 노드/태그 컬렉션을 가져올 수 있어요. 친절하게 안내 함

답변

0

제공되는 html에서 xPath는 @id 속성이있는 버튼이 없기 때문에 아무 것도 반환하지 않습니다. 여전히 @"//*[local-name()!="button"]"버튼을 제외한 모든 노드를 반환합니다.

편집 : 모두 p 안에 버튼이 없습니다. @"//p[not(button)]".

+0

이 태그는 이전 태그의 자식이며 버튼 태그 노드를 제공하는 것과 관계없이 각각의 모든 HTML 태그에 노드를 제공하기 때문에이 솔루션은 작동하지 않는 것처럼 보입니다. – touseefkhan4pk

+0

하지만 그것은 정확히 당신이 요구 한 것입니다 : "이제는 단추 태그 이외의 모든 노드도 수집해야합니다." 버튼이없는 자유 텍스트 :'@ "// p [not (button)]" –

+0

예 버튼 태그를 제외한 모든 노드의 콜렉션이 필요합니다. 그러나 이것은 나에게 단추 꼬리표 및 또한 그것의 아이들 꼬리표를주고있다. 나는 단추도 자식도 필요하지 않습니다. – touseefkhan4pk

관련 문제