현재 위치: > 최신 기사 목록> PHP에서 어린이 기능을 사용하여 HTML DOM 요소의 어린이를 추출하는 방법은 무엇입니까?

PHP에서 어린이 기능을 사용하여 HTML DOM 요소의 어린이를 추출하는 방법은 무엇입니까?

M66 2025-08-11

요소의 어린이를 추출하는 것은 웹 크롤링 또는 HTML 컨텐츠를 구문 분석 할 때 매우 일반적인 작업입니다. PHP는 HTML을 처리하는 다양한 방법을 제공하며 Domlement 와 결합 된 DomDocument 의 사용은 비교적 표준적이고 강력한 방법입니다. 그러나 simple_html_dom 과 같은 타사 라이브러리를 사용하는 경우 children () 기능을 통해 자식 노드를 얻는 것이 더 편리 할 수 있습니다.

Children () 기능은 무엇입니까?

children ()은 Simple_html_dom 라이브러리에 제공된 방법입니다. HTML 요소의 모든 자식 요소 (텍스트 노드 제외)를 얻는 데 사용됩니다. 이 메소드는 특정 인덱스가있는 자식 노드 또는 하위 노드를 반환합니다.

샘플 html

 <span><span><span class="hljs-tag">&lt;<span class="hljs-name">div</span></span></span><span> </span><span><span class="hljs-attr">id</span></span><span>=</span><span><span class="hljs-string">"content"</span></span><span>&gt;
    </span><span><span class="hljs-tag">&lt;<span class="hljs-name">p</span></span></span><span>&gt;첫 번째 단락</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">p</span></span></span><span>&gt;
    </span><span><span class="hljs-tag">&lt;<span class="hljs-name">p</span></span></span><span>&gt;단락 2</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">p</span></span></span><span>&gt;
    </span><span><span class="hljs-tag">&lt;<span class="hljs-name">span</span></span></span><span>&gt;하나 span</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">span</span></span></span><span>&gt;
</span><span><span class="hljs-tag">&lt;/<span class="hljs-name">div</span></span></span><span>&gt;
</span></span>

children ()을 사용하여 어린이 노드를 추출하는 방법?

1 단계 : simple_html_dom을 소개합니다

먼저 Github 또는 공식 웹 사이트에서 도서관을 소개해야합니다.

 <span><span><span class="hljs-keyword">include</span></span><span>(</span><span><span class="hljs-string">'simple_html_dom.php'</span></span><span>);
</span></span>

2 단계 : HTML로드

HTML은 문자열, 파일 또는 URL에서로드 할 수 있습니다.

 <span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_get_html</span></span><span>(</span><span><span class="hljs-string">'&lt;div id="content"&gt;&lt;p&gt;첫 번째 단락&lt;/p&gt;&lt;p&gt;단락 2&lt;/p&gt;&lt;span&gt;하나 span&lt;/span&gt;&lt;/div&gt;'</span></span><span>);
</span></span>

3 단계 : 대상 요소를 선택하고 children ()

 <span><span><span class="hljs-variable">$div</span></span><span> = </span><span><span class="hljs-variable">$html</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">find</span></span><span>(</span><span><span class="hljs-string">'div#content'</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>); </span><span><span class="hljs-comment">// 获取第하나 id ~을 위한 content ~의 div</span></span><span>
</span><span><span class="hljs-variable">$children</span></span><span> = </span><span><span class="hljs-variable">$div</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">children</span></span><span>();         </span><span><span class="hljs-comment">// 모든 아이들을 얻으십시오</span></span><span>

</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$children</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$child</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$child</span></span><span>-&gt;tag . </span><span><span class="hljs-string">': '</span></span><span> . </span><span><span class="hljs-variable">$child</span></span><span>-&gt;innertext . </span><span><span class="hljs-string">"&lt;br&gt;"</span></span><span>;
}
</span></span>

출력은 다음과 같습니다.

 <span><span><span class="hljs-section">p: 첫 번째 단락  </span></span><span>
</span><span><span class="hljs-section">p: 단락 2  </span></span><span>
</span><span><span class="hljs-section">span: 하나 span  </span></span><span>
</span></span>

지정된 인덱스의 자식 노드를 가져옵니다

children () 메소드는 또한 특정 지수의 하위 노드를 얻기 위해 매개 변수를 수락 할 수 있습니다.

 <span><span><span class="hljs-variable">$firstChild</span></span><span> = </span><span><span class="hljs-variable">$div</span></span><span>-&gt;</span><span><span class="hljs-title function_ invoke__">children</span></span><span>(</span><span><span class="hljs-number">0</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$firstChild</span></span><span>-&gt;tag; </span><span><span class="hljs-comment">// 산출: p</span></span><span>
</span></span>

주목해야 할 것

  1. children ()은 텍스트 노드 나 주석이 아닌 자식 요소 노드 만받습니다.

  2. 모든 자손 노드 (직접 어린이뿐만 아니라)를 가로 지르려면 찾기 ( '*')를 사용할 수 있습니다.

  3. Simple_html_dom을 사용하는 경우 외부 입력을 처리하는 HTML이 안전하고 XSS 또는 기타 주입 위험을 피하십시오.

요약

Children () 기능을 사용하여 모든 하위 노드를 특정 HTML 요소로 쉽게 가져 오십시오. 이는 구조화 된 데이터를 추출해야 할 때 매우 실용적입니다. Simple_HTML_DOM 과 결합하여 복잡한 HTML 문서를 신속하게 구문 분석하고 운영하여 개발 효율성을 크게 향상시킬 수 있습니다. 더 강력한 DOM 운영 기능이 필요한 시나리오의 경우 PHP의 내장 DomDocument 클래스를 이해하는 것이 좋습니다. 이는 더 많은 제어 및 유연성을 제공합니다.

  • 관련 태그:

    HTML