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
DDDOriginal
2024-12-24 05:47:21133Durchsuche

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')]

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!

Stellungnahme:
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