2016-05-05 4 views
0

Ich sah eine Frage wie diese über ein XML-Dokument, aber ich habe ein HTML-Dokument und möchte wissen, ob es gleich funktioniert.Mithilfe von Xpath feststellen, ob in einem untergeordneten Element Text vorhanden ist?

Ich versuche, durch viele HTML-Seiten Schleife und festzustellen, ob es irgendwelche Instanzen eines span-Element sind, das den Text "Text" enthält:

//*[@id="all_totals"]/div[1]/div/span[7]//span[text()="Export"] 

Link zum Bild von HTML: http://f.cl.ly/items/290L2v373y3c3P050x2m/Image%202016-05-05%20at%202.59.25%20PM.png

In dem obigen Xpath endet das gewünschte Elternelement am zweiten "div". Ich fügte den Rest ("/ span [7] ...") als das spezifische Element hinzu, das ich ergreifen möchte. Ich möchte überprüfen, ob einer der im Elternelement enthaltenen Spannen den Text "text" enthält, weil das Span-Element, das ich möchte, [6] statt [7] wäre (der "Text" -Bereich) ist ein gelegentliches Extra, das vor dem passiert, das ich zu dem positiven Inkrement von 1 Platz führe)

Ich bin mir sicher, dass ich das falsch mache, so dass jede Hilfe sehr geschätzt wird.

Hope das macht Sinn. Gerne bei Bedarf mehr klären!

+2

Können Sie eine Probe oder einen Link zu dem Quelldokument zur Verfügung stellen (s) du versuchst zu analysieren? – larsks

+0

Wirklich eine minimale Probe im Körper der Frage wird über eine Verbindung bevorzugt, die sich ändern oder im Laufe der Zeit brechen kann. – kjhughes

+0

Hier ist ein Link zu dem HTML-Code, mit dem ich arbeite: http://f.cl.ly/items/290L2v373y3c3P050x2m/Image%202016-05-05%20at%202.59.25%20PM.png Es ist ein Link wegen der Menge an Code, die ich aufnehmen wollte, um das vollste Bild zu geben. –

Antwort

0

Um zu überprüfen, „Eltern“ auf jeder Ebene Gebrauch Vorfahren

so etwas wie dieses Versuchen (nicht getestet):

(//*[@id="all_totals"]/div[1]/div 
    /span[ ancestor::*/span[contains(text(), "text")] and position() = 6 
     or position() = 7 ])[1] 
Verwandte Themen