如何以递归方式从XML中获取元素及其子元素?

时间:2015-06-12 09:21:58

标签: java xml javafx treeview

我需要构建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;。有办法处理吗?我这样做了吗?

0 个答案:

没有答案