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 쿼리를 사용하는 것을 고려해 보세요.
구현:
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>
DOMXPath 개체 인스턴스화:
<code class="php">$xpath = new DOMXPath($dom);</code>
XPath 실행 쿼리:
<code class="php">$tags = $xpath->query('//div[@class="main"]/div[@class="text"]');</code>
텍스트 값 검색:
<code class="php">foreach ($tags as $tag) { var_dump(trim($tag->nodeValue)); }</code>
이 접근 방식은 " 제공된 HTML에서 이 텍스트 1 캡처 및 "이 텍스트 2 캡처".
위 내용은 PHP의 DOMDocument 및 XPath를 사용하여 특정 HTML 요소에서 텍스트를 효율적으로 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!