Jdom元素处理

时间:2011-12-19 15:51:27

标签: xml jdom

如果父母在jdom中有一些文本,是否有可能以某种方式将一个元素嵌套到另一个元素中?我正在寻找的东西是<p> text <str>bold text</str> text </p>。我可以创建一个名为<p>的新元素,然后使用.addContent我可以在其下添加<strong>元素,但如果<p>中有一些文字,我该怎么办呢?元件。感谢。

1 个答案:

答案 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();
}