Heim >Web-Frontend >CSS-Tutorial >Wie kann ich mit XPath effizient HTML-Elemente nach CSS-Klasse finden?
Elemente anhand der CSS-Klasse mithilfe von XPath finden
Beim Web Scraping ist es häufig erforderlich, HTML-Elemente anhand ihrer CSS-Klasse zu finden. XPath, ein leistungsstarkes Tool zum Navigieren in XML- und HTML-Dokumenten, bietet eine Möglichkeit, dies zu erreichen.
Stellen Sie sich eine HTML-Seite mit einem div-Element vor, das eine Klasse namens „Test“ hat. Um dieses Element zu finden, kann die folgende XPath-Abfrage verwendet werden:
//*[contains(@class, 'Test')]
Diese Abfrage wählt alle Elemente aus, die die Klasse „Test“ enthalten, unabhängig davon, wo sie im Dokumentbaum erscheinen.
Um die Leistung zu optimieren, können Sie die Suche auf bestimmte Elementtypen, z. B. Divs, eingrenzen. Die folgende Abfrage beschränkt beispielsweise die Suche auf Divs, die die Klasse „Test“ enthalten:
//div[contains(@class, 'Test')]
Wenn Sie jedoch Elemente mit Klassen wie „Testvalue“ oder „newTest“ haben, stimmt die obige Abfrage überein sie auch. Um eine genauere Übereinstimmung sicherzustellen, können Sie eine verkettete Zeichenfolge mit einem Leerzeichen vor und nach der Klasse „Test“ verwenden, wie von @Tomalak vorgeschlagen:
//div[contains(concat(' ', @class, ' '), ' Test ')]
Diese Abfrage findet nur Divs, die das Wort enthalten „Testen“ als separaten Klassenwert.
Um etwaige Probleme mit Leerzeichen zu vermeiden, können Sie die Leerzeichen auch mit der Funktion normalize-space normalisieren, wie von vorgeschlagen @Terry:
//div[contains(concat(' ', normalize-space(@class), ' '), ' Test ')]
Abschließend ist es wichtig, das Sternchen (*) in diesen Abfragen durch den tatsächlichen Elementnamen zu ersetzen, mit dem Sie übereinstimmen möchten, es sei denn, Sie möchten alle Elemente im Dokument durchsuchen. Dadurch wird die Effizienz der Abfrage verbessert.
Das obige ist der detaillierte Inhalt vonWie kann ich mit XPath effizient HTML-Elemente nach CSS-Klasse finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!