Heim > Web-Frontend > CSS-Tutorial > Wie kann ich mit XPath effizient HTML-Elemente nach CSS-Klasse finden?

Wie kann ich mit XPath effizient HTML-Elemente nach CSS-Klasse finden?

DDD
Freigeben: 2024-12-24 05:47:21
Original
129 Leute haben es durchsucht

How Can I Efficiently Locate HTML Elements by CSS Class Using XPath?

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

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

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

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

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage