2010-01-06 3 views
4

JTree에 XML 파일의 내용을 표시하는 방법이 필요합니다. DOM을 사용하여 이미 사용자 정의 TreeModel (및 TreeCellRenderer)을 구현하여이 작업을 수행했습니다. 그러나 그것은 매우 clunky (많은 workaround-ery와 hackery)와 가장자리 주위에 오히려 거친다.Java : JTree에 XML 파일을 표시하는 방법

누구나 JTree에 SAX로 파싱 된 XML 파일의 내용을 표시하는 방법을 알고 있습니까?

감사합니다.

답변

13

다음은 내가 사용하는 코드입니다. Dom4J의 API를 기반으로하지만 원하는 XML 라이브러리의 API로 쉽게 변환 할 수 있습니다.

public JTree build(String pathToXml) throws Exception { 
    SAXReader reader = new SAXReader(); 
    Document doc = reader.read(pathToXml); 
    return new JTree(build(doc.getRootElement())); 
} 

public DefaultMutableTreeNode build(Element e) { 
    DefaultMutableTreeNode result = new DefaultMutableTreeNode(e.getText()); 
    for(Object o : e.elements()) { 
     Element child = (Element) o; 
     result.add(build(child)); 
    } 

    return result;   
}