DOMDocument를 사용하여 PHP에서 특정 클래스의 요소에서 텍스트를 추출하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-12 10:24:01
원래의
285명이 탐색했습니다.

How to Extract Text from Elements with a Specific Class in PHP Using DOMDocument?

지정된 클래스가 있는 요소의 텍스트 병합

소개:

PHP DOM을 사용하여 HTML을 구문 분석하는 것은 특히 어려울 수 있습니다. 특정 요구 사항을 처리할 때. 이 문서에서는 지정된 클래스가 있는 요소에서 텍스트를 추출하고 이를 구조화된 배열로 구성하는 솔루션을 살펴봅니다.

시나리오:

다음 HTML 콘텐츠를 고려하세요.

<p class="Heading1-P">
    <span class="Heading1-H">Chapter 1</span>
</p>
<p class="Normal-P">
    <span class="Normal-H">This is chapter 1</span>
</p>
로그인 후 복사

목표는 에서 텍스트를 추출하는 것입니다. "Heading1-H" 클래스가 있는 요소는 $heading 배열로, "Normal-H" 클래스가 있는 요소의 텍스트는 $content 배열로 변환되어 결과는 다음과 같습니다.

$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3'];
$content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];
로그인 후 복사

DOMDocument를 사용한 솔루션 및 DOMXPath:

우리는 DOMDocument와 DOMXPath를 사용하여 이 작업을 처리합니다.

// Load HTML into DOMDocument
$dom = new DOMDocument();
$dom->loadHTML($html);

// Create DOMXPath object
$xpath = new DOMXPath($dom);

// Get elements with desired class using XPath
$xpathQuery = "//*[@class='$class']";
$elements = $xpath->query($xpathQuery);

// Extract text from elements and store in arrays
$headings = [];
$contents = [];
foreach ($elements as $element) {
    $nodes = $element->childNodes;
    foreach ($nodes as $node) {
        $headings[] = $node->nodeValue;
    }
}

var_dump($headings);
로그인 후 복사

이 솔루션은 HTML을 효과적으로 구문 분석하고 원하는 배열을 반환합니다.

참고:

이 작업에 jQuery를 사용하는 것은 권장되지 않습니다. PHP DOM은 HTML 조작에 대해 보다 체계적이고 프로그래밍적인 접근 방식을 제공하기 때문입니다.

위 내용은 DOMDocument를 사용하여 PHP에서 특정 클래스의 요소에서 텍스트를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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