如果父母在jdom中有一些文本,是否有可能以某种方式将一个元素嵌套到另一个元素中?我正在寻找的东西是<p> text <str>bold text</str> text </p>
。我可以创建一个名为<p>
的新元素,然后使用.addContent
我可以在其下添加<strong>
元素,但如果<p>
中有一些文字,我该怎么办呢?元件。感谢。
答案 0 :(得分:0)
您需要检索并删除原始文本,识别应强调的区域,在此区域周围拆分原始字符串,添加前缀(如果有),创建并添加元素(“强”)并设置其文本到该区域,并且finall添加后缀(如果有的话)。
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();
}