/*과 /는 모두 XPath에서 경로를 지정할 때 사용하는 구분자이지만, 그 사용 용도가 조금 다릅니다.
1. / (슬래시)
/는 루트부터 시작하는 절대 경로를 지정하는 데 사용됩니다.- 예를 들어,
/html/body는html태그 아래의body태그를 의미합니다. - 상위 노드에서 직접 지정하는 경로로 사용되며, 루트(문서의 최상위 요소)부터 탐색을 시작합니다.
2. /* (슬래시와 별표)
/*는 현재 노드에서의 직계 하위 요소를 선택하는 데 사용됩니다.- 예를 들어,
/*는 현재 노드의 직계 자식 요소들만 선택합니다.
주요 차이점
/는 절대 경로를 지정할 때 사용되며, 루트에서부터 경로를 찾습니다./*는 현재 노드의 직계 하위 요소를 선택할 때 사용됩니다. 현재 노드에서 직접 하위 요소를 선택하는 방식입니다.
예시:
/html/body- 문서의 루트(
html)에서 시작하여, 그 하위의body요소를 선택합니다.
- 문서의 루트(
/*- 현재 노드의 직계 하위 요소들을 선택합니다. 예를 들어,
div요소 아래에ul과p요소가 있다면,/*는div의 하위인ul,p만 선택합니다.
- 현재 노드의 직계 하위 요소들을 선택합니다. 예를 들어,
예시 코드
<html>
<body>
<div class="content">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
</div>
<div class="footer">
<p>Footer text</p>
</div>
</body>
</html>
/html/body/div→ 루트에서 시작해서html > body > div요소를 찾습니다./*→ 현재 노드에서 바로 직계 하위 요소들을 선택합니다. 예를 들어,div.content에서/*는p태그들을 선택하게 됩니다.
따라서, /는 경로를 따라가며 찾고, /*는 직계 자식 요소를 선택하는 방식입니다.
