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!