extrahieren flacher Text aus Elementen mit einer festgelegten Klasse mit php dom
extrahieren Text aus spezifischen HTML -Elementen ist eine gemeinsame Aufgabe in der Webentwicklung. PHP DOM bietet robuste Tools für das Parsen von HTML und zum Zugriff auf deren Inhalt. Dieser Artikel befasst Wechselklassennamen besteht darin, den Text in zwei Arrays zu speichern: eine für Überschriften und eine für Inhalte. Zum Beispiel angesichts der folgenden html:
Kapitel 1
Dies ist Kapitel 1
wir müssen die folgende Ausgabe erhalten:$ heading = ['Kapitel 1', 'Kapitel 2', 'Kapitel 3']; $ content = ['Dies ist Kapitel 1', 'Dies ist Kapitel 2', 'Dies ist Kapitel 3'. PHP DOM, wir verwenden Domdocument und DomxPath. Die Lösung beinhaltet die folgenden Schritte:
Laden Sie das HTML in ein Domdocument -Objekt:Chapter 1
This is chapter 1
$heading = ['Chapter 1', 'Chapter 2', 'Chapter 3']; $content = ['This is chapter 1', 'This is chapter 2', 'This is chapter 3'];
ein DomxPath-Objekt erstellen, um XPaths auszuführen:
$ xpath = new domxpath ($ dom);
$dom = new DOMDocument(); $dom->loadHTML($test);
$xpath = new DOMXPath($dom);iteriert die übereinstimmenden Knoten und extrahiert ihren Textinhalt.
$heading = parseToArray($xpath, 'Heading1-H'); $content = parseToArray($xpath, 'Normal-H');
php Funktion paretoArray (DomxPath $ xPath, String $ Klasse): Array { $ xPathQuery = "//*[@class = '$ class']"; $ Elements = $ xPath-> Abfrage ($ xPathQuery); $ resultarray = []; foreach ($ elements as $ element) { $ nodes = $ element-> childnodes; foreach ($ nodes als $ node) { $ resultArray [] = $ node-> nodeValue; } } return $ resultarray; } $ test = Kapitel 1
Dies ist Kapitel 1
Kapitel 2
Dies ist Kapitel 2
Kapitel 3
Dies ist Kapitel 3
Html; $ dom = new Domdocument (); $ dom-> loadHTML ($ test); $ xPath = new DomxPath ($ DOM); $ heading = paretoArray ($ xpath, 'heading1-h'); $ content = paretoArray ($ xpath, 'normal-h'); var_dump ($ hething); echo "Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3