我希望有一种方法可以在 JTree
中显示 XML 文件的内容。我已经使用 DOM 通过实现自定义 TreeModel
(和 TreeCellRenderer
)完成了此操作。然而,它非常笨重(很多变通方法和 hackery)并且边缘相当粗糙。
有没有人知道一种方法可以让 JTree
显示用 SAX 解析的 XML 文件的内容?
谢谢!
最佳答案
这是我使用的代码。它基于 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;
}
关于Java:如何在 JTree 中显示 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2011775/