문제

나는 이것을하고 싶다 :

//*부

이름이 다음으로 끝나는 모든 노드를 반환합니다. , 와 같은 <tarfu /> 그리고 <snafu />, 하지만 <fubar />

도움이 되었습니까?

해결책

다음과 같이 하십시오:

//*[ends-with(name(), 'fu')]

좋은 XPath 참조를 보려면 다음을 확인하세요. W3학교.

다른 팁

이 답변은 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"으로 끝나는 요소와 일치하는 항목을 찾습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top