XPath / /* 차이

/*/는 모두 XPath에서 경로를 지정할 때 사용하는 구분자이지만, 그 사용 용도가 조금 다릅니다.

1. / (슬래시)

  • /는 루트부터 시작하는 절대 경로를 지정하는 데 사용됩니다.
  • 예를 들어, /html/bodyhtml 태그 아래의 body 태그를 의미합니다.
  • 상위 노드에서 직접 지정하는 경로로 사용되며, 루트(문서의 최상위 요소)부터 탐색을 시작합니다.

2. /* (슬래시와 별표)

  • /*는 현재 노드에서의 직계 하위 요소를 선택하는 데 사용됩니다.
  • 예를 들어, /*는 현재 노드의 직계 자식 요소들만 선택합니다.

주요 차이점

  • /는 절대 경로를 지정할 때 사용되며, 루트에서부터 경로를 찾습니다.
  • /*는 현재 노드의 직계 하위 요소를 선택할 때 사용됩니다. 현재 노드에서 직접 하위 요소를 선택하는 방식입니다.

예시:

  1. /html/body

    • 문서의 루트(html)에서 시작하여, 그 하위의 body 요소를 선택합니다.
  2. /*

    • 현재 노드의 직계 하위 요소들을 선택합니다. 예를 들어, div 요소 아래에 ulp 요소가 있다면, /*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 태그들을 선택하게 됩니다.

따라서, /는 경로를 따라가며 찾고, /*는 직계 자식 요소를 선택하는 방식입니다.

댓글 쓰기
가져가실 때, 출처 표시 부탁드려요! 감사합니다. 💗