XPath zum Suchen einer Zelle mit einem bestimmten Text, der HTML-Tabellen analysiert

8

Hoffe jemand da draußen kann mich mit meinen XPath-Schwierigkeiten schnell in die richtige Richtung lenken.

Aktuell Ich habe den Punkt erreicht, an dem ich die richtige Tabelle in meiner HTML-Quelle identifiziere, aber dann muss ich nur die Zeilen verarbeiten, die irgendwo im DOM den Text "Kapitel" haben.

Mein letzter Versuch war, dies zu tun:

%Vor%

Ich dachte, der obige Xpath würde darstellen, hol mir alle Elemente, die ein folgendes Kindelement von 'td' haben, das irgendwo in seinem Dom den Text 'Kapitel'

enthält

Ein Beispiel für eine übereinstimmende Zeile aus meiner Quelle ist:

%Vor%

Jede Hilfe / Zeiger sehr geschätzt.

Danke,

    
Dave 10.03.2012, 03:48
quelle

3 Antworten

12

Verwenden Sie diesen XPath:

%Vor%     
Kirill Polishchuk 10.03.2012, 06:16
quelle
7

Sie möchten alle td s unter Ihrem aktuellen Knoten haben - nicht - alle im Dokument , da die aktuell akzeptierte Antwort auswählt.

Verwenden Sie :

%Vor%

Hiermit werden alle Nachkommen von td des aktuellen Knotens mit dem Namen td ausgewählt, die mindestens einen Nachkommen des Textknotens aufweisen, dessen Zeichenfolgenwert die Zeichenfolge "Chapter" enthält.

Wenn im Voraus bekannt ist, dass jede td unter dieser table nur einen einzigen Textknoten hat, kann dies auf vereinfacht werden:

%Vor%     
Dimitre Novatchev 10.03.2012 15:42
quelle
2

Ihr auf dem rechten "Pfad".
Die Funktion contains () ist auf ein bestimmtes Element beschränkt, nicht auf Text in einem der untergeordneten Elemente. Versuchen Sie diesen XPath, den Sie wie folgt lesen könnten: - Holen Sie sich jeden tr / td mit einem Unterelement, das den Text 'Kapitel' enthält

%Vor%

Viel Glück

    
William Walseth 10.03.2012 03:58
quelle

Tags und Links