자녀의 자식 값을 기반으로 요소를 선택하는 XPath


208

어린이 어린이 중 하나의 가치에 따라 요소를 선택하려고합니다.

다음을 생각하지만 작동하지 않으면 도움을 주셔서 감사합니다. 감사합니다.

./book[/author/name = 'John'] 또는

./book[/author/name text() = 'John']

저자 이름이 'John'인 모든 책을 원합니다

Xml 파일

<list>
   <book>
      <author>
         <name>John</name>
         <number>4324234</number>
      </author>
      <title>New Book</title>
      <isbn>dsdaassda</isbn>
   </book>
   <book>...</book>
   <book>...</book>
</list>

답변:


300

거의 다 왔어. 술어에서 상대 경로를 원하므로 변경하십시오.

./book[/author/name = 'John'] 

어느 쪽이든

./book[author/name = 'John'] 

또는

./book[./author/name = 'John'] 

당신은 당신의 요소와 일치합니다. 현재 술어는 문서의 루트로 돌아가서를 찾습니다 author.


1
없이는 .나를 위해 일 하지 않았다 (필요한 ./author/name)
— MichaelChirico

함수에서이 구문을 사용할 수 있습니까? 예를 들어 다음과 같은 것을 구현하는 방법은 무엇 ./book[contains(author/name, "John")]입니까?
— 단지 학습자

1
@OgrishMan 새로운 질문은 New Question 에서 가야 하지만 그 전에는 시도해보십시오! 일반적으로 xpath의 문자열 리터럴에 대해서는 '큰 따옴표 대신 작은 따옴표를 원합니다 ".
— AakashM
당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.