Вам необходимо извлечь и удалить исходный текст, определить область, которая должна быть выделена, разделить исходную строку вокруг этой области, добавить префикс (если есть), создать и добавить элемент («сильный») и установить его текст в регион и, наконец, добавьте суффикс (если есть).
public static void main(String[] args) throws Exception {
Element p = new Element("p");
p.setText("Some bold text");
print(p);
List<Content> parts = split(p.getText());
p.removeContent();
p.addContent(parts);
print(p);
}
static List<Content> split(String s) {
List<Content> result = new LinkedList<Content>();
String bold = "bold";
int i = s.indexOf(bold);
if (i != -1) {
result.add(new Text(s.substring(0, i)));
result.add(new Element("strong").setText(bold));
result.add(new Text(s.substring(i+bold.length())));
} else {
result.add(new Text(s));
}
return result;
}
static void print(Element e) throws IOException {
new XMLOutputter().output(e, System.out);
System.out.println();
}