Heim >Web-Frontend >CSS-Tutorial >Wie kann ich DOM-Elemente anhand des Klassennamens in PHP finden?

Wie kann ich DOM-Elemente anhand des Klassennamens in PHP finden?

Linda Hamilton
Linda HamiltonOriginal
2025-01-03 14:20:40805Durchsuche

How Can I Find DOM Elements by Class Name in PHP?

Elemente anhand des Klassennamens im DOM finden

Wenn Sie mit einem PHP-DOM-Knoten arbeiten, müssen Sie möglicherweise auf Unterelemente basierend auf ihren zugreifen Klassennamen. Um dies zu erreichen, stehen mehrere Ansätze zur Verfügung:

XPath-Selektor

Mit XPath-Selektoren können Sie XML- oder HTML-Dokumente mithilfe der XPath-Syntax abfragen. Sie können den folgenden XPath-Ausdruck verwenden, um Elemente mit einem bestimmten Klassennamen abzurufen:

//*[contains(@class, '$classname')]

Ersetzen Sie $classname durch den Zielklassennamen. Zum Beispiel:

$dom = new DomDocument();
$dom->load($filePath);
$finder = new DomXPath($dom);
$classname = "my-class";
$nodes = $finder->query("//*[contains(@class, '$classname')]");

Zend_Dom_Query

Zend_Dom_Query bietet eine flexible Möglichkeit, HTML- oder XML-Dokumente mithilfe der CSS-Selektorsyntax abzufragen. Es unterstützt verschiedene Selektoren, einschließlich des Klassenattributselektors. Um Zend_Dom_Query zu verwenden:

$finder = new Zend_Dom_Query($html);
$classname = 'my-class';
$nodes = $finder->query("*[class~=\"$classname\"]");

CSS-Selektor

PHP unterstützt keine nativen CSS-Selektoren. Sie können jedoch eine externe Bibliothek wie Simple HTML DOM Parser verwenden, um HTML zu analysieren und CSS-Selektoren zum Suchen von Elementen verwenden. Zum Beispiel:

$html = new simple_html_dom();
$html->load($htmlDocument);
$elements = $html->find('.my-class');

Xpath-Version des CSS-Selektors [*[@class~='my-class']

Dieser Ansatz beinhaltet die Verwendung von Xpath zum Ausführen von a etwas komplexer Ausdruck, der den CSS-Selektor emuliert [[@class~='my-class']*:

$xpath = "//*[contains(concat(' ', normalize-space(@class), ' '), ' my-class ')]";

Letztendlich hängt der beste Ansatz zum Abrufen von DOM-Elementen nach Klassennamen von Ihren spezifischen Anforderungen und den verfügbaren Ressourcen ab in Ihrer PHP-Umgebung.

Das obige ist der detaillierte Inhalt vonWie kann ich DOM-Elemente anhand des Klassennamens in PHP finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn