여러 조건이있는 XPath


157

이름 속성이 지정된 범주와 값이 지정된 하위 노드 작성자를 선택하기 위해 사용할 수있는 XPath

나는 성공하지 않고 아래 경로의 다른 변형을 시도했습니다.

//quotes/category[@name='Sport' and author="James Small"]

XML :

<?xml version="1.0" encoding="utf-8"?>
<quotes>
  <category name="Sport">
   <author>James Small<quote date="09/02/1985">Quote One</quote><quote             date="11/02/1925">Quote nine</quote></author>
  </category>
   <category name="Music">
   <author>Stephen Swann
 <quote date="04/08/1972">Quote eleven</quote></author>
  </category>
  </quotes>

답변:


248

시험:
//category[@name='Sport' and ./author/text()='James Small']


4
팔로어의 경우 "예상]이지만 발견 된 오류 메시지 : &&"는 "&& 대신 and 및 키워드 사용"을 의미합니다 (이 답변이 명시한대로)
rogerdpack

31

사용 :

/category[@name='Sport' and author/text()[1]='James Small']

또는 사용 :

/category[@name='Sport' and author[starts-with(.,'James Small')]]

//의사 연산자는 일반적으로 평가 속도가 매우 느릴 수 있으므로 가능 하면 의사 연산자를 사용하지 않는 것이 좋습니다.

또한:

./somename

다음과 같습니다.

somename

후자를 사용하는 것이 좋습니다.


14

질문은 명확하지 않지만 이름 속성이 있고 지정된 값을 가진 하위 작성자가 있어야하는 카테고리를 선택해야한다는 것을 이해합니다.

여기는 xpath입니다

//category[@name='Required value'][./author[contains(.,'Required value')]]
e.g
//category[@name='Sport'][./author[contains(.,'James Small')]]

1

and, 또는를 사용하여 xpath에 여러 조건을 적용 할 수 있습니다.

//input[@class='_2zrpKA _1dBPDZ' and @type='text']

//input[@class='_2zrpKA _1dBPDZ' or @type='text']

-1

여기서도 이렇게 할 수 있습니다 :

//category [@name='category name']/author[contains(text(),'authorname')]

또는

//category [@name='category name']//author[contains(text(),'authorname')]

XPATH에 대한 자세한 내용은 셀레늄 xpath를 참조하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.