2017-12-15 3 views
1

요소의 텍스트를 기반으로 xpath 결과를 반환하려고합니다.Xpath 결과가 요소의 텍스트로 필터링되었습니다.

이 내 현재 식입니다 // S : 본체/NS : 2hentArsrapporterResponse/반품/어린이 : * 텍스트() = '2016']는 단지 하나 개의 요소를 반환하지만

: 요소 = '2016

표현식은 요소에'2016 '텍스트가 포함되어 있으면 반환 노드의 모든 요소를 ​​반환해야합니다. 누군가 올바른 표현으로 나를 도울 수 있습니까? enter image description here

답변

1

전체 일치하는 <return> 개의 노드를 모두 반환하는 것이 더 쉽습니다. 어쨌든 모든 자식 태그를 원하기 때문에 바깥쪽에 여분의 래퍼 태그가 있으면 문제가되지 않을 것이고 출력을 체계적으로 정리할 수있는 더 나은 방법을 제공 할 것입니다. 이를 위해, 우리는 단지 직접 <return> 노드를 필터링 할 수 있습니다

//S:Body/ns:2hentArsrapporterResponse/return[antallVersjoner[text()='2016'] or ar[text()='2016'] or ...] 

이 솔루션은 분명히 일치 수있는 모든 가능한 아이 노드를 나열에 따라 달라집니다. 많은 하위 노드가있는 경우이 방법이 최적이 아닐 수 있습니다.

+0

고맙습니다! 에 '2016'이라는 텍스트가 포함 된 경우 // S : Body/ns : 2hentArsrapporterResponse/return [ar [text() = '2016]]은 모든 요소를 ​​반환했습니다. –

+0

정말 좋지 않습니다. 여기서'text()'를 사용하십시오. 'ar [text() = '2016']'대신'ar [. = '2016'] 대신'* [ar = '2016']'을 사용하십시오. 주석이나 혼합 된 내용이있는 경우'text()'를 사용하면 실패합니다. –

관련 문제