我需要构建XML文件中存在的元素的树视图。 例如,
<abc>
<abcd/>
<abcd/>
</abc>
<def>
<defg/>
<jkl/>
<defg/>
</def>
My TreeView应如下所示:
>abc
>abcd
>abcd
>def
>defg
>jkl
>defg
>def
我需要读取元素并在JavaFX中构建一个treeView。我不确定在这里使用哪种数据结构。如果我使用List&gt;存储&lt;(节点,孩子)&gt;,每个孩子可以有多个孩子,他们可以有很多孩子等等。所以,我无法弄清楚要使用哪种数据结构。任何人都可以建议这里有什么可能的方式吗?
更新: 使用此Java: How to display an XML file in a JTree中的引用,我尝试在JavaFX中执行此操作。
public TreeView<String> build(String pathToXml) throws Exception {
SAXReader reader = new SAXReader();
Document doc = (Document) reader.read(pathToXml);
return new TreeView<String>(build(doc.getRootElement()));
}
public TreeItem<String> build(Element e) {
TreeItem<String> item = new TreeItem<String>(e.getText());
for(Object o : e.elements()) {
Element child = (Element) o;
item.getChildren().add(build(child));
}
return item;
}
但是我无法在TreeView中看到内容。当我调试时,e.getText()只有&#34; \ n \ n&#34;。有办法处理吗?我这样做了吗?