2011-12-19 1 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(); 
}