Aktueller Standort: Startseite> Neueste Artikel> Wie extrahiere ich Kinder von HTML -DOM -Elementen unter Verwendung der Kinderfunktion in PHP?

Wie extrahiere ich Kinder von HTML -DOM -Elementen unter Verwendung der Kinderfunktion in PHP?

M66 2025-08-11

Das Extrahieren von Kindern eines Elements ist ein sehr häufiger Operation bei der Durchführung von Webkriechen oder Parsen von HTML -Inhalten. PHP bietet eine Vielzahl von Möglichkeiten, HTML zu verarbeiten, und die Verwendung von Domdocument in Kombination mit Domelement ist eine relativ Standard- und leistungsstarke Methode. Wenn Sie jedoch eine Bibliothek von Drittanbietern wie Simple_html_dom verwenden, kann es bequemer sein, Kinderknoten durch die Funktion von Children () zu erhalten.

Was ist die Funktion von Children () ?

Children () ist eine Methode, die in der Bibliothek von Simple_html_dom bereitgestellt wird. Es wird verwendet, um alle untergeordneten Elemente eines HTML -Elements (ohne Textknoten) zu erhalten. Diese Methode gibt eine Reihe von untergeordneten Knoten oder einen untergeordneten Knoten mit einem bestimmten Index zurück.

Probe 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;Der erste Absatz</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;Absatz 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;eins 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>

Wie extrahiere ich Kinderknoten mit Kindern () ?

Schritt 1: Führen Sie Simple_html_dom ein

Sie müssen zunächst die Bibliothek von Github oder der offiziellen Website vorstellen:

 <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>

Schritt 2: HTML laden

HTML kann aus einer Zeichenfolge, einer Datei oder einer URL geladen werden.

 <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;Der erste Absatz&lt;/p&gt;&lt;p&gt;Absatz 2&lt;/p&gt;&lt;span&gt;eins span&lt;/span&gt;&lt;/div&gt;'</span></span><span>);
</span></span>

Schritt 3: Wählen Sie das Zielelement aus und verwenden Sie Kinder ()

 <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">// 获取第eins id für content von 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">// Holen Sie sich alle Kinder</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>

Die Ausgabe wird sein:

 <span><span><span class="hljs-section">p: Der erste Absatz  </span></span><span>
</span><span><span class="hljs-section">p: Absatz 2  </span></span><span>
</span><span><span class="hljs-section">span: eins span  </span></span><span>
</span></span>

Holen Sie sich die untergeordneten Knoten des angegebenen Index

Die Methode Children () kann auch einen Parameter akzeptieren, um die untergeordneten Knoten eines bestimmten Index zu erhalten.

 <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">// Ausgabe: p</span></span><span>
</span></span>

Dinge zu beachten

  1. Kinder () erhält nur Kinderelementknoten, keine Textknoten oder Kommentare.

  2. Um alle Nachkommenknoten zu durchqueren (nicht nur direkte Kinder), können Sie Find ('*') verwenden.

  3. Stellen Sie bei der Verwendung von Simple_html_dom sicher, dass HTML, das die externe Eingabe behandelt, sicher ist und XSS oder andere Injektionsrisiken vermeidet.

Zusammenfassen

Verwenden Sie die Funktion von Children () , um einfach alle untergeordneten Knoten unter ein bestimmtes HTML -Element zu bringen, was sehr praktisch ist, wenn Sie strukturierte Daten extrahieren müssen. In Kombination mit Simple_html_dom können Sie komplexe HTML -Dokumente schnell analysieren und bedienen, was die Entwicklungseffizienz erheblich verbessert. Für Szenarien, in denen stärkere DOM-Betriebsfunktionen erforderlich sind, wird empfohlen, die integrierte Domdocument- Klasse in PHP zu verstehen, die mehr Kontrolle und Flexibilität bietet.

  • Verwandte Tags:

    HTML