자녀의 자식 값을 기반으로 요소를 선택하는 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.