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

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

Linda Hamilton
풀어 주다: 2024-12-08 18:30:15
원래의
433명이 탐색했습니다.

How to Select a CSS Class Using XPath?

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

문제:

선택하고 싶습니다. XPath를 사용하는 HTML 문서에서 ".date"라는 특정 클래스를 호출했지만 귀하의 시도는 실패했습니다.

코드:

@$doc = new DOMDocument();
@$doc->loadHTML($html);
$xml = simplexml_import_dom($doc); //Simplify XPath
$images = $xml->xpath('//[@class="date"]'); 
로그인 후 복사

해결책:

CSS와 달리 XPath는 기본적으로 클래스 선택기를 지원하지 않습니다. 그러나 해결 방법이 있습니다.

올바른 XPath 구문:

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

이 표현식은 클래스 속성에 하위 문자열이 포함된 모든 요소와 일치합니다. "foo".

설명:

  • normalize-space: 앞뒤 공백을 제거합니다.
  • concat: " ", 정규화된 @class 값 및 " "를 사용하여 클래스 이름이 다음으로 둘러싸여 있는지 확인합니다. 공백.
  • 포함: 연결된 문자열에 " foo "가 포함되어 있는지 확인합니다.

예:

<div>
로그인 후 복사

XPath 쿼리는 "date" 클래스가 있는 요소를 올바르게 선택하고 "foobar"를 무시하세요. element.

잘못된 접근 방식:

  • //*[@class="foo"]: 요소를 여러 클래스와 일치시키지 않습니다.
  • //*[contains(@class, "foo")]: "foo"를 하위 문자열로 포함하는 클래스와 요소를 일치시킵니다. "foobar"와 같은 긴 클래스 이름의 일부라도 마찬가지입니다.

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

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