5

我想有一种方法可以在JTree. 我已经使用 DOM 通过实现自定义TreeModel(and TreeCellRenderer) 实现了这一点。然而,它非常笨重(很多变通方法和骇客)并且边缘相当粗糙。

有没有人知道一种方法来JTree显示用 SAX 解析的 XML 文件的内容?

谢谢!

4

1 回答 1

14

这是我使用的代码。它基于 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;         
}
于 2010-01-06T08:59:32.443 回答