Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich mit PHP DOM-Elemente effizient nach Klassennamen auswählen?
Bei der Arbeit mit PHP DOM ist es entscheidend, bestimmte Elemente innerhalb eines Knotens basierend auf ihrer Klasse abzurufen. Lassen Sie uns die besten Ansätze erkunden, um dies zu erreichen:
$dom = new DomDocument();<br>$dom->load($filePath);<br>$finder = new DomXPath($dom);<br>$classname = "my-class";<br>$nodes = $finder->query("//*[contains(@class, '$classname')]");<br>
Dieser Ansatz verwendet XPath, um alle Elemente mit auszuwählen das angegebene Klassenattribut.
Wenn Sie die CSS-Selektorsyntax bevorzugen, Zend_Dom_Query bietet eine praktische Lösung:
$finder = new Zend_Dom_Query($html);<br>$classname = 'my-class';<br>$nodes = $finder->query("*[class~='$classname']");<br>
Update: XPath-Version von *[@class~=' my-class'] CSS-Selektor
Das Parsen des CSS-Selektors mit Zend_Dom_Query zeigt einen äquivalenten XPath Ausdruck:
$nodes = $finder->query("[contains(concat(' ', normalize-space(@class), ' '), ' $classname ')]" );<br>
Durch die direkte Verwendung dieses XPath können Sie nach Elementen abfragen, die die angegebene Klasse enthalten, ohne sie zu verwenden Zend_Dom_Query.
Bei der Auswahl von Elementen nach Klasse ist zu beachten, dass Sie, wenn der Elementtyp bekannt ist, das * durch den entsprechenden Tag-Namen ersetzen können, um die Suche einzugrenzen und die Effizienz zu verbessern.
Das obige ist der detaillierte Inhalt vonWie kann ich mit PHP DOM-Elemente effizient nach Klassennamen auswählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!