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
Freigeben: 2025-01-03 14:20:40
Original
800 Leute haben es durchsucht

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')]
Nach dem Login kopieren

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')]");
Nach dem Login kopieren

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\"]");
Nach dem Login kopieren

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');
Nach dem Login kopieren

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 ')]";
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage