> 백엔드 개발 > PHP 튜토리얼 > XPath를 사용하여 CSS 클래스를 올바르게 선택하는 방법은 무엇입니까?

XPath를 사용하여 CSS 클래스를 올바르게 선택하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-08 22:46:14
원래의
717명이 탐색했습니다.

How to Correctly Select a CSS Class with XPath?

XPath를 사용하여 CSS 클래스 선택

웹 스크래핑의 맥락에서는 CSS 클래스를 기반으로 특정 요소를 정확하게 타겟팅하는 것이 중요합니다. HTML로 작업할 때는 CSS 선택기가 간단하지만 XML 문서를 처리하거나 고급 웹 스크래핑 기술을 활용할 때는 XPath가 필요합니다.

문제: XPath를 사용하여 단일 클래스 선택

이 질문은 XPath를 사용하여 "날짜" 클래스만을 기준으로 요소를 선택해야 합니다. 그러나 제공된 코드 조각은 예상치 못한 결과를 생성합니다.

//[@class="date"]
로그인 후 복사

해결책: 올바른 XPath 등가

XPath에서 특정 클래스가 있는 요소를 올바르게 선택하려면 다음 구문을 사용해야 합니다.

//*[contains(concat(" ", normalize-space(@class), " "), " foo ")]
로그인 후 복사

이에는 표현식:

  • normalize-space(@class)는 선행 및 후행 공백을 제거하고 여러 공백을 하나로 축소하여 클래스 속성의 형식이 일관되게 유지되도록 합니다.
  • concat(" ", Normalize-space(@class), " ")는 정규화된 클래스 값 주위에 공백을 추가하여 대상 클래스와 비교할 수 있도록 합니다. name.
  • contains(...)는 수정된 클래스 속성 값 내에서 대상 클래스 이름을 검색합니다.

잘못된 접근 방식 방지

일반적이지만 결함이 있는 두 가지 XPath 피해야 할 선택기에는 다음이 포함됩니다.

  • //*[@class="date"]: 계정에 포함되지 않음 여러 클래스가 있는 요소의 경우.
  • //*[contains(@class, "date")]: "foobar"와 같이 "date"가 포함된 클래스 이름이 있는 요소와 일치하지만 이는 올바르지 않습니다.

크레딧

여기에 제공된 솔루션은 이 특정 문제를 다루는 귀중한 블로그 게시물을 게시한 동료 웹 스크레이퍼의 덕분입니다. 통찰력을 공유해주신 분들께 감사드립니다.

위 내용은 XPath를 사용하여 CSS 클래스를 올바르게 선택하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿