반응형
부모가 아닌 텍스트를 포함하는 요소 만 반환하는 XPath
이 XML에서 'match'(random2 요소)를 포함하는 요소를 일치시키고 싶습니다.
<root>
<random1>
<random2>match</random2>
<random3>nomatch</random3>
</random1>
</root>
좋아, 지금까지 내가 가지고있다.
//[re:test(.,'match','i')] (with re in the proper namespace)
이것은 random2, random1 및 root를 반환합니다. "random2"만 얻고 싶습니다.
어떤 아이디어?
"일치" 를 포함 하거나 "일치"와 같은 요소를 찾고 싶 습니까?
이렇게하면 '일치'와 같은 텍스트 노드가있는 요소를 찾습니다 (의 선행 및 후행 공백으로 인해 요소와 일치하지 않음 random2
).
//*[text()='match']
이것은 선행 및 후행 공백 (matches random2
) 을 제거한 후 "일치"와 동일한 텍스트 노드가있는 모든 요소를 찾습니다 .
//*/text()[normalize-space(.)='match']/parent::*
그러면 텍스트 노드 값 ( random2
및 일치 random3
)에 '일치'가 포함 된 모든 요소를 찾습니다 .
//*[contains(text(),'match')]
이 XPATH 2.0 솔루션은 'match'를 포함하는 텍스트 노드를 찾고 문자열의 시작 (예 :) ^
또는 단어 경계 (예 :)에서 시작하고 문자열 \W
의 끝으로 끝나는 match () 함수와 정규식 패턴을 사용 합니다. (예 $
) 또는 단어 경계. 세 번째 매개 변수 i
는 대소 문자를 구분하지 않는 정규식 패턴을 평가합니다. (일치 random2
)
//*[matches(text(),'(^|\W)match($|\W)','i')]
시험
//re:*[. ='match']
반응형
'Development Tip' 카테고리의 다른 글
C ++에서 단항 빼기 연산자를 오버로드하는 방법은 무엇입니까? (0) | 2020.11.07 |
---|---|
log4net은이 로그 파일을 어디에 생성합니까? (0) | 2020.11.07 |
활동이 시작되지 않았습니다. 현재 작업이 맨 앞으로 가져 왔습니다. (0) | 2020.11.07 |
Ruby 객체 및 JSON 직렬화 (Rails 제외) (0) | 2020.11.07 |
날짜 시간 asc로 PostgreSQL 정렬, 먼저 null입니까? (0) | 2020.11.07 |