>백엔드 개발 >PHP 튜토리얼 >PHP를 사용하여 클래스 이름별로 DOM 요소를 효율적으로 선택하려면 어떻게 해야 합니까?

PHP를 사용하여 클래스 이름별로 DOM 요소를 효율적으로 선택하려면 어떻게 해야 합니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-05 20:27:11256검색

How Can I Efficiently Select DOM Elements by Class Name Using PHP?

PHP DOM을 사용하여 클래스 이름별로 DOM 요소 가져오기

PHP DOM으로 작업할 때 해당 클래스를 기반으로 노드 내 특정 요소를 가져오는 것이 중요합니다. 이를 달성하기 위한 최선의 접근 방식을 살펴보겠습니다.

XPath 선택기

$dom = new DomDocument();<br>$dom->load($filePath);<br>$finder = 새로운 DomXPath($dom);<br>$classname = "my-class";<br>$nodes = $finder->query("//*[contains(@class, '$classname')]");<br>

이 접근 방식은 XPath를 사용하여 지정된 클래스 속성이 있는 모든 요소를 ​​선택합니다.

Zend_Dom_Query CSS 선택기

CSS 선택기 구문을 선호하는 경우 Zend_Dom_Query가 편리한 솔루션을 제공합니다.

$finder = new Zend_Dom_Query($html);<br>$classname = 'my-class ';<br>$노드 = $finder->query("*[class~='$classname']");<br>

업데이트: *[@class~='의 XPath 버전 my-class'] CSS 선택기

Zend_Dom_Query를 사용하여 CSS 선택기를 구문 분석하면 동등한 XPath가 나타납니다. 표현식:

$nodes = $finder->query("[contains(concat(' ', Normalize-space(@class), ' '), ' $classname ')]" );<br>

이 XPath를 직접 활용하면 다음을 사용하지 않고도 지정된 클래스가 포함된 요소를 쿼리할 수 있습니다. Zend_Dom_Query.

클래스별로 요소를 선택할 때 요소 유형을 알고 있는 경우 *를 해당 태그 이름으로 바꾸면 검색 범위가 좁아지고 효율성이 향상된다는 점에 유의할 필요가 있습니다.

위 내용은 PHP를 사용하여 클래스 이름별로 DOM 요소를 효율적으로 선택하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.