Java: Как отобразить файл XML в JTree - PullRequest
4 голосов
/ 06 января 2010

Я хотел бы иметь возможность отображать содержимое файла XML в JTree. Я уже выполнил это с помощью DOM, реализовав пользовательский TreeModelTreeCellRenderer). Однако он очень неуклюжий (много обходного пути и хакерский) и довольно грубый по краям.

Кто-нибудь знает, как получить JTree для отображения содержимого файла XML, проанализированного с помощью SAX?

Спасибо!

1 Ответ

13 голосов
/ 06 января 2010

Вот код, который я использую. Он основан на API Dom4J, но вы можете легко преобразовать его в API вашей любимой библиотеки XML:

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;         
}
...