반응형
여러 조건을 가진 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
반응형
'programing' 카테고리의 다른 글
| mariadb 서버에서 .csv 파일 형식의 리눅스 서버로 데이터베이스 테이블 자동 내보내기 (0) | 2023.10.01 |
|---|---|
| TransactionSynchronizationManager.ActualTransactionActive()를 사용하는 것보다 Spring DB 트랜잭션이 활성 상태인지 탐지하는 더 나은 방법이 있습니까? (0) | 2023.10.01 |
| "true" 및 "false" 문자열을 부울에 입력합니다. (0) | 2023.10.01 |
| c에서 여러 문자열을 연결하는 더 나은 방법? (0) | 2023.10.01 |
| 레벤쉬테인:MySQL + PHP (0) | 2023.10.01 |