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!