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" 요소를 선택합니다.
카테고리 없음
Xpath-2
반응형
반응형