2011-12-19 10 views
0

親要素にjdomを持つテキストがある場合、要素を別の要素に入れ子にすることは可能でしょうか?私が探しているものは<p> text <str>bold text</str> text </p>のようなものです。 <p>という新しい要素を作成して.addContentという要素を作成することができます。<strong>要素を追加できますが、<p>要素にテキストがある場合はどうすればできますか。ありがとう。Jdom要素の処理

答えて

0

元のテキストを取得して削除し、強調する領域を特定し、元の文字列をこの領域に分割し、接頭辞を追加し、Elemenを作成して追加し(「強い」)そのテキストをリージョンに追加し、接尾辞があればそれを追加します。

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(); 
} 
関連する問題