Mam nadzieję, że ktoś tam szybko wskaże mi właściwy kierunek z moimi trudnościami XPath.XPath, aby zlokalizować komórkę z tekstowym parsowaniem tabel HTML
Obecny Doszedłem do punktu, w którym identyfikuję poprawną tabelę potrzebną w moim źródle HTML, ale muszę przetworzyć tylko te wiersze, które mają tekst "Rozdział" gdzieś w DOM.
Moja ostatnia próba była to zrobić:
// get the correct table
HtmlTable table = page.getFirstByXPath("//table[2]");
// now the failing bit....
def rows = table.getByXPath("*/td[contains(text(),'Chapter')]")
Myślałem, że XPath powyżej stanowiłoby, daj mi wszystkie elementy, które mają następujący element podrzędny „TD”, że gdzieś w jego dom zawiera tekst " Rozdział”
przykładem rzędzie pasującym od mojego źródła jest:
<tr valign="top">
<td nowrap="" align="Right">
<font face="Verdana">
<a href="index.cfm?a=1">Chapter 1</a>
</font>
</td>
<td class="ChapterT">
<font face="Verdana">DEFINITIONS</font>
</td>
<td> </td>
</tr>
Każda pomoc/wskazówki mile widziana.
Dzięki,
Dzięki, że wydaje się działać. Co oznacza "." przedstawiać? Ponadto nie rozumiem, dlaczego detekcja "relacyjna" nie działa, np. masz // który, jak rozumiem, zaczyna się od rdzenia? – Dave
@Dave, Nie ma za co. '.' i' // 'to skrócona składnia XPath. '.' wybiera węzeł kontekstu. '// td' wybiera wszystkich potomków td' z głównego katalogu dokumentów i tym samym wybiera wszystkie elementy' td' w tym samym dokumencie, co węzeł kontekstu. * Numer referencyjny *: http://www.w3.org/TR/xpath/#path-abbrev –