/*
과 /
는 모두 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
태그들을 선택하게 됩니다.
따라서, /
는 경로를 따라가며 찾고, /*
는 직계 자식 요소를 선택하는 방식입니다.