As newbie I prefer use Abs XPath to get find WebElemnts where text is positioned.
I tried:
List<WebElement> elements = web.findElements(By.xpath("/html[1]/body[1]/div[2]/div[2]/dl[1]/dd[2]/div[2]/div/div[1]/ol[5]/li[1]/div[2]/div/p"));

But i failed to catch text under tags with minor changes
Target xpaths:
/html[1]/body[1]/div[2]/div[2]/dl[1]/dd[2]/div[2]/div[6]/div[1]/ol[5]/li[1]/div[2]/div[4]/div[1]/div[1]/p[1]
/html[1]/body[1]/div[2]/div[2]/dl[1]/dd[2]/div[2]/div[6]/div[1]/ol[5]/li[1]/div[2]/div[8]/p
/html[1]/body[1]/div[2]/div[2]/dl[1]/dd[2]/div[2]/div[2]/div[1]/ol[5]/li[1]/div[2]/div[3]/h3[1]
/html[1]/body[1]/div[2]/div[2]/dl[1]/dd[2]/div[2]/div[2]/div[1]/ol[5]/li[1]/div[2]/div[2]/div[1]/p
/html[1]/body[1]/div[2]/div[2]/dl[1]/dd[2]/div[2]/div[5]/div[1]/ol[5]/li[1]/div[2]/div[1]/div[1]/p[1]/strong[1]

What is correct formula or way to get all text content in the above mentioned xpaths ?

What is the best way to find text content under relatively indistinguishable tags by Selenium-webdriver?
Not very clear what you want: If you want all elements that contain direct text you could use:
/html/body[1]//*[text()[normalize-space()]]

this will return all elements with direct text()-nodes that after filtering unnecessary whitespace, have character-data.
meaning XPath-parts:
// = any descendant; see this info on axes
* = any element
[some filter] = predicate to filter on direct previous node.
[#number] = the position within its siblings. body[1] maybe seems redundant, but can help the XPath-engine not to look any further for other body elements
text() = node of type text
normalize-space() = strips white-space according this rules
