如果父元素中有一些带有jdom的文本,是否可以以某种方式将一个元素嵌套到另一个元素中?我要找的是类似<p> text <str>bold text</str> text </p>的东西。我可以创建一个名为<p>的新元素,然后使用.addContent在它下面添加一个<strong>元素,但是如果<p>元素中有一些文本,我该如何做呢?谢谢。
发布于 2011-12-29 00:43:34
您需要检索并删除原始文本,确定应该强调的区域,在该区域周围拆分原始字符串,添加前缀(如果有),创建并添加Elemen("strong")并将其文本设置为该区域,最后添加后缀(如果有)。
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();
}https://stackoverflow.com/questions/8563814
复制相似问题