2013-01-03 16 views
5

Użyłem Jsoup do pobrania strony z adresu URL. można wyodrębnić linku niektórych id stosując następujący wiersz kodu:Jak znaleźć elementy według podciągu ID za pomocą składni selektora Jsoup?

Elements links = doc.select("a[href]#title0"); 

Jak mogę znaleźć elementy, jeżeli znam tylko część jej ID na przykład „tytułowej”. Wiem, że mogłem znaleźć wszystkie linki a z href, a następnie iterować po "linkach" i sprawdzić, czy id ma tytuł "tytuł", czy też nie, ale chciałbym tego uniknąć. Czy istnieje sposób filtrowania linków w selektorze i sprawdzenia, czy id ma tytuł "tytuł"?

Odpowiedz

7

Można użyć coś takiego:

Elements links = doc.select("a[id^=nav]"); 

ten wróci wszystkie linki z identyfikatorem zaczynające się od znaków „nav”

Poniższa zwróci wszystkie linki z identyfikatorem zawierającym ciąg „logo”

Elements links = doc.select("a[id~=logo]"); 
1

@ Odpowiedź alex-ackerman jest w połowie poprawna, ale druga połowa jest błędna.

[atr^= valPrefix] Elementy z atrybutami nazwie „atr”, a wartości rozpoczynające się od „valPrefix” [atr $ = valSuffix] Elementy z atrybutami nazwie „atr”, a wartości końcowej z " valSuffix " [attr * = valContaining] elementy z atrybutem o nazwie" attr "i wartością zawierającą elementy" valContaining "[attr ~ = regex] z atrybutem o nazwie" attr "i wartością odpowiadającą wyrażeniu regularnemu The powyżej można łączyć w dowolnej kolejności

http://jsoup.org/apidocs/org/jsoup/select/Selector.html

Powiązane problemy