java - JSOUP scrape html text from p and span -
i'm having hard time getting correct output. please see below sample text html:
<p><span class="v">1</span> een psalm van david. de heere mijn herder, mij zal niets ontbreken.</p> <p><span class="v">2</span> hij doet mij nederliggen in grazige weiden; hij voert mij zachtjes aan zeer stille wateren.</p> <p><span class="v">3</span> hij verkwikt mijn ziel; hij leidt mij in het spoor der gerechtigheid, om zijns naams wil.</p>
i want value of paragraph een psalm van david. de heere mijn herder, mij zal niets ontbreken. based on user's selected verse
so far i've done:
httpget = new httpget(url); httpresponse resp = client.execute(get); string content = entityutils.tostring(resp.getentity()); document doc = jsoup.parse(content); stringbuilder sb = new stringbuilder(); elements passage = doc.select("p > span.v"); sb.append(passage.text() + "\n"); elements links = doc.select(classname); (element link : links) { sb.append(link.text() + " "); } log.e("elements", "" + sb.tostring()); response = sb.tostring();
but i'm getting verse numbers. how correct output? gladly appreciate help. thanks.
assuming want paragraph of verse 1
, can using:
:has(selector)
elements contain elements matching selector- then use selector
span.v:containsown(1)
indicate wantspan
of classv
text
contains1
. - and use
owntext()
text of element not text of children too, otherwise if want both usetext()
.
so code be:
string classname = "v"; int verse = 1; element p = doc.select(string.format("p:has(span.%s:containsown(%d))", classname, verse)) .first(); system.out.println(p.owntext());
output:
een psalm van david. de heere mijn herder, mij zal niets ontbreken.
if want paragraphs' content, code be:
stringbuilder sb = new stringbuilder(); elements paragraphs = doc.select("p:has(span.v)"); (element p : paragraphs) { sb.append(p.owntext() + "\n"); } system.out.println(sb);
output:
een psalm van david. de heere mijn herder, mij zal niets ontbreken. hij doet mij nederliggen in grazige weiden; hij voert mij zachtjes aan zeer stille wateren. hij verkwikt mijn ziel; hij leidt mij in het spoor der gerechtigheid, om zijns naams wil.
Comments
Post a Comment