xpath에서“not”을 사용하는 방법?


164

나는 일종의 것을 쓰고 싶다 :

//a[not contains(@id, 'xx')]

( 'id'속성이있는 모든 링크에 'xx'문자열이 포함되어 있지 않음)

올바른 구문을 찾을 수 없습니다.

답변:


241

not ()은 xpath의 함수 (연산자와 대조되는)이므로

//a[not(contains(@id, 'xx'))]

<p> 태그를 제외한 모든 <p> 태그를 가져 오는 방법이 있습니까? <p> 텍스트 텍스트 <a class="x"> TEXT </a> 텍스트 텍스트 </ p>와 같은 것을 상상해보십시오. p의 모든 텍스트를 원하지만 a의 텍스트는 원하지 않습니다. XPath로 가능합니까? 이것은 정확히 내 경우가 아니며, 그것보다 조금 더 복잡하지만 다소 동일합니다.
Ali


13

이 답변 중 어느 것도 파이썬에서 효과가 없었습니다. 나는 이것으로 해결했다

a[not(@id='XX')]

또한 xpath에서 |연산자로 사용하거나 조건을 지정할 수 있습니다 . 와 같은

a[not(@id='XX')]|a[not(@class='YY')]

때때로 우리는 클래스가없는 요소를 원합니다. 그래서 당신은 좋아할 수 있습니다

a[not(@class)]

1

boolean function아래와 같이 사용하십시오 :

//a[(contains(@id, 'xx'))=false]
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.