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:

  1. :has(selector) elements contain elements matching selector
  2. then use selector span.v:containsown(1) indicate want span of class v text contains 1.
  3. and use owntext() text of element not text of children too, otherwise if want both use text().

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

Popular posts from this blog

asynchronous - C# WinSCP .NET assembly: How to upload multiple files asynchronously -

aws api gateway - SerializationException in posting new Records via Dynamodb Proxy Service in API -

asp.net - Problems sending emails from forum -