>  기사  >  백엔드 개발  >  PHP의 DOMDocument 및 XPath를 사용하여 특정 HTML 요소에서 텍스트를 효율적으로 추출하는 방법은 무엇입니까?

PHP의 DOMDocument 및 XPath를 사용하여 특정 HTML 요소에서 텍스트를 효율적으로 추출하는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-02 08:48:29440검색

How to Efficiently Extract Text from Specific HTML Elements Using PHP's DOMDocument and XPath?

PHP의 HTML DOMDocument로 HTML 구문 분석

질문:

DOMDocument 객체 활용, 캡처 특정 HTML 요소 내의 텍스트. 예를 들어 다음 HTML에서 "이 텍스트 1 캡처" 및 "이 텍스트 2 캡처"를 추출합니다.

<div class="main">
    <div class="text">
    Capture this text 1
    </div>
</div>

<div class="main">
    <div class="text">
    Capture this text 2
    </div>
</div>

답변:

DOMDocument::getElementsByTagName 사용 특정 이름을 가진 모든 태그를 검색하는 것은 이 작업에 비효율적일 수 있습니다. 대신 DOMXPath 클래스를 활용하여 문서에 XPath 쿼리를 사용하는 것을 고려해 보세요.

구현:

  1. HTML을 DOMDocument에 로드 개체:

    <code class="php">$html = <<<HTML
    <div class="main">
     <div class="text">
     Capture this text 1
     </div>
    </div>
    
    <div class="main">
     <div class="text">
     Capture this text 2
     </div>
    </div>
    HTML;
    
    $dom = new DOMDocument();
    $dom->loadHTML($html);</code>
  2. DOMXPath 개체 인스턴스화:

    <code class="php">$xpath = new DOMXPath($dom);</code>
  3. XPath 실행 쿼리:

    <code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>
  4. 텍스트 값 검색:

    <code class="php">foreach ($tags as $tag) {
     var_dump(trim($tag->nodeValue));
    }</code>

이 접근 방식은 " 제공된 HTML에서 이 텍스트 1 캡처 및 "이 텍스트 2 캡처".

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

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