텍스트를 포함하는 요소만 반환하고 상위 항목은 반환하지 않는 XPath
이 xml에서 match를 하고 싶은 요소는 '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...을 반환합니다.저는 '랜덤2'만 받고 싶습니다.
무슨 생각 있어요?
"match"를 포함하는 요소를 찾으시겠습니까, 아니면 동일한 "match"를 포함하는 요소를 찾으시겠습니까?
이렇게 하면 텍스트 노드가 'match'와 동일한 요소를 찾을 수 있습니다(아래의 선행 및 후행 공백 때문에 어떤 요소도 일치하지 않음).random2):
//*[text()='match']
이렇게 하면 선행 및 후행 공백(일치)을 제거한 후 "일치"와 같은 텍스트 노드가 있는 모든 요소를 찾습니다.random2):
//*[normalize-space(text())='match']
이렇게 하면 텍스트 노드 값에 'match'가 포함된 모든 요소(match)를 찾을 수 있습니다.random2그리고.random3):
//*[contains(text(),'match')]
이 XPATH 2.0 솔루션은matches()function과 문자열의 시작 부분에서 시작하는 'match'를 포함하는 텍스트 노드를 찾는 regex 패턴입니다.^) 또는 단어 경계(즉, ).\W) 및 문자열의 끝에 의해 종료됩니다(즉,).$) 또는 단어 경계.세번째 파라미터iregex 패턴 대소문자를 구분하지 않는 값을 평가합니다.(주로)random2)
//*[matches(text(),'(^|\W)match($|\W)','i')]
해라
//re:*[. ='match']
언급URL : https://stackoverflow.com/questions/2994198/xpath-to-return-only-elements-containing-the-text-and-not-its-parents
'programing' 카테고리의 다른 글
| 명령 /Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang이 종료 코드 1과 함께 실패했습니다. (0) | 2023.09.12 |
|---|---|
| C++ 대 C로 컴파일 시 GCC 코드 생성의 큰 차이 (0) | 2023.09.12 |
| 공간 조인이 있는 mysql 뷰가 작동하지 않습니다. (0) | 2023.09.12 |
| 모든 부모가 있는 트리에 있는 노드의 mysql에서 부모/자녀 관계의 전체 트리 가져오기 (0) | 2023.09.12 |
| 스프링 빈즈 - 컨스트럭터 arg로 널 배선하는 방법? (0) | 2023.09.12 |