programing

여러 조건을 가진 XPath

easyjava 2023. 10. 1. 23:05
반응형

여러 조건을 가진 XPath

이름 속성이 지정된 범주와 값이 지정된 하위 노드 작성자를 선택할 때 사용할 수 있는 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>

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

용도:

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

또는 용도:

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

사용하지 않도록 노력하는 것이 좋은 규칙입니다.//가능할 때마다 의사 operator을 할 수 있습니다. 왜냐하면 평가가 일반적으로 매우 느릴 수 있기 때문입니다.

또한:

./somename

는 다음과 같습니다.

somename

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

질문은 명확하지 않지만 이름 속성이 있고 값이 지정된 하위 작성자가 있어야 하는 범주를 선택해야 하는 것으로 알고 있으며, 틀리면 수정하십시오.

다음은 xpath입니다.

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

xpath에서 여러 조건을 적용할 수 있습니다.

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

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

여기서는 다음과 같은 방법도 사용할 수 있습니다.

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

오어

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

XPATH에 대해 자세히 알아보려면 - selenium xpath에 대해 자세히 알아보시기 바랍니다.

언급URL : https://stackoverflow.com/questions/10247978/xpath-with-multiple-conditions

반응형