문제
나는 이것을하고 싶다 :
//*부
이름이 다음으로 끝나는 모든 노드를 반환합니다. 부, 와 같은 <tarfu />
그리고 <snafu />
, 하지만 <fubar />
해결책
다른 팁
이 답변은 XPath 1.0 그에 상응하는 것이 없는 곳에서 XPath 2.0 표준 end-with() 함수.
다음 XPath 1.0 표현식은 이름이 문자열 "fu"로 끝나는 xml 문서의 모든 요소를 선택합니다.
//*[substring(name(),string-length(name())-1) = 'fu']
나는 Dimitre Novatchev의 답변에 어려움을 겪었지만 일치 항목을 반환하지 않았습니다.나는 귀하의 XPath에 "fu"의 길이가 2임을 알리는 섹션이 있어야 한다는 것을 알고 있었습니다.
부분 문자열을 지정할 내용을 결정하려면 문자열 길이('fu')를 사용하는 것이 좋습니다.
답변으로 결과를 얻을 수 없고 xpath 1.0을 사용한 솔루션이 필요한 사람들을 위해:
//*[substring(name(), string-length(name()) - string-length('fu') +1) = 'fu']
"fu"로 끝나는 요소와 일치하는 항목을 찾습니다.
또는
//*[substring(name(), string-length(name()) - string-length('Position') +1) = 'Position']
"Position"으로 끝나는 요소와 일치하는 항목을 찾습니다.
제휴하지 않습니다 StackOverflow