Angenommen, ich möchte die automatische Optimierung von Schriftanfragen basierend auf der Element- und Inhaltsstruktur einer Seite implementieren. Wie würde ich die benötigten Informationen mit PHPs DomDocument erhalten?Wie bekomme ich Element- und Inhaltsstruktur mit DomDocument von PHP?
Das Problem, auf dem Punkt kann mit zwei Strukturbeispielen veranschaulicht werden:
Beispiel 1
<p><em>All italic paragraph text</em></p>
Beispiel 2
<p>Normal paragraph text <em>and some italic text</em></p>
Die Elementstruktur die gleiche in den beiden Beispielen ist, dh ein Absatzelement mit einem untergeordneten Element <em>
. Allerdings unterscheidet sich die Inhaltsstruktur: Der Text ist kursiv in Beispiel 1, aber es ist normal und kursiv Text in Beispiel 2
Mein aktueller Ansatz für die Elementstruktur bekommen ist so etwas wie dieses:
$dom = new DOMDocument;
foreach ($dom->getElementsByTagName('p') as $elm) {
$elms[] = $dom->saveHTML($elm);
}
Ich würde dann durch die Elemente iterieren und den gleichen Ansatz zum Finden verschachtelter Elemente wie <em>
und <strong>
verwenden.
Aber ich brauche einen guten Ansatz für die Inhaltsstruktur. Ich glaube, ich könnte den Text mit <em>
und </em>
teilen und sehen, ob das erste und das letzte Element in der resultierenden Liste Länge haben, aber das erinnert mich an benutzerdefinierte HTML-Suche mit Regex, die hier der am wenigsten empfohlene Ansatz scheint.
Aber was sind meine Alternativen in diesem Fall?
Vielen Dank! Das scheint genau das zu sein, wonach ich gesucht habe. Obwohl es nicht DomDocument ist, ist es stille PHP, nach der ich wirklich gesucht habe. Vielen Dank. –