본문 바로가기
카테고리 없음

Xpath-2

by Pymac 2023. 12. 9.
반응형


8. **노드 종류:**
   - `node()`: 모든 종류의 노드를 선택합니다. 요소, 속성, 텍스트 노드 등을 모두 포함합니다.
     예: `//book/node()`은 "book" 요소의 모든 하위 노드를 선택합니다.

9. **다중 조건:**
   - `and`, `or`: 여러 조건을 결합하여 사용할 수 있습니다.
     예: `//book[price>10 and category='fiction']`은 가격이 10보다 크고 카테고리가 'fiction'인 "book" 요소를 선택합니다.

10. **문자열 관련 함수:**
   - `contains()`, `starts-with()`, `substring()`: 문자열과 관련된 조건을 사용할 수 있습니다.

contains(문자열, 부분문자열): 주어진 문자열이 특정 부분문자열을 포함하는지 확인하는 함수입니다. 부분문자열이 존재하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예: //div[contains(@class, "강조")]

이는 class 속성에 "강조" 부분문자열을 포함하는 모든 <div> 요소를 선택합니다.

starts-with(문자열, 접두사): 주어진 문자열이 특정 접두사로 시작하는지 확인하는 함수입니다. 문자열이 해당 접두사로 시작하면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

예: //a[starts-with(@href, "https://example.com")]

이는 href 속성이 "https://example.com"로 시작하는 모든 <a> 요소를 선택합니다.

substring(문자열, 시작, 길이): 주어진 문자열에서 특정 위치에서부터 특정 길이만큼의 부분문자열을 추출하는 함수입니다. 길이를 지정하지 않으면 시작 위치부터 문자열 끝까지의 부분문자열을 추출합니다.

예: //p[substring(text(), 1, 5) = "안녕하세요"]

이는 텍스트 내용이 "안녕하세요"로 시작하는 모든 <p> 요소를 선택합니다.


11. **축(Axis):**
   - `1. **`ancestor::노드유형`**: 현재 노드의 모든 조상 노드 중에서 특정 유형의 노드를 선택합니다.

   예: //span/ancestor::div
   이는 `<span>` 요소의 조상 중에서 `<div>` 요소를 선택합니다.

2. **`descendant::노드유형`**: 현재 노드의 모든 후손(하위) 노드 중에서 특정 유형의 노드를 선택합니다.

   예://div/descendant::p
   이는 `<div>` 요소의 하위에 있는 모든 `<p>` 요소를 선택합니다.

3. **`parent::노드유형`**: 현재 노드의 부모 노드 중에서 특정 유형의 노드를 선택합니다.

   예://span[parent::div]
   이는 `<div>` 요소의 자식인 `<span>` 요소를 선택합니다.

4. **`following-sibling::노드유형`**: 현재 노드의 다음 형제 노드 중에서 특정 유형의 노드를 선택합니다.

   예://p/following-sibling::ul
   이는 `<p>` 요소 다음에 나오는 `<ul>` 형제 요소를 선택합니다.

5. **`preceding-sibling::노드유형`**: 현재 노드의 이전 형제 노드 중에서 특정 유형의 노드를 선택합니다.

   예:  //li/preceding-sibling::li
   이는 `<li>` 요소의 이전 형제 `<li>` 요소들을 선택합니다.

이러한 축(Axis)는 XPath에서 노드 간의 관계를 지정하는 데 사용되며, 문서의 특정 부분을 탐색하고 선택하는 데 유용합니다.

12. **함수 활용:**
   - ``: 결과 노드의 위치, 갯수 등을 확인하는 함수를 사용할 수 있습니다.
     예: `//book[position()<3]`은 처음 두 "book" 요소를 선택합니다.


반응형