java - 递归方法不起作用 - ArrayList<String>

标签 java xml algorithm recursion xml-parsing

我对递归方法有疑问,该方法将 XML 文件的所有元素放入 ArrayList

<?xml version="1.0"  encoding="iso-8859-1"?>
<country>
  <name> France </name>
  <city> Paris </city>
  <region>
     <name> Nord-Pas De Calais </name>
     <population> 3996 </population>
     <city> Lille </city>
  </region>
  <region>
     <name> Valle du Rhone </name>
     <city> Lyon </city>
     <city> Valence </city>
  </region>
 </country>

但是我的函数没有完全完成(获取所有元素):结果是 [country, name, city, region, region] 但我想获取所有元素 [country, name, city, region,name, population,region,name,city,city],我认为递归调用不在正确的地方,这是我的代码

public static ArrayList<String> TreeToArray (Node node)
{
    ArrayList<String> ArrayNoeud = new ArrayList<String> ();

   ArrayNoeud.add(node.getNodeName());


    NodeList nl = node.getChildNodes();
    for (int i = 0; i < nl.getLength(); i++) {
      Node n = nl.item(i);

      if (n instanceof Element)
      {
           ArrayNoeud.add(n.getNodeName());

      }

    TreeToArray(n);
    }


    return ArrayNoeud;  



}

最佳答案

您正在递归,但您没有将返回值分配给任何东西。

代替

 TreeToArray(n);

试试这个:

 ArrayNoeud.addAll( TreeToArray(n) );

关于java - 递归方法不起作用 - ArrayList<String>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10610192/

相关文章:

xml - Chrome 39 XML/XSLT 呈现空白页面

javascript - 分离矩形 Javascript

java - 如何使用 JAXB 忽略绑定(bind)到 XML 的字段

java - Android 光标.moveBeforeFirst()

java - 通过 Hashmap 进行搜索并将结果添加到列表中

algorithm - Haskell 中的置换算法

algorithm - 如何有效检查大型偏斜二叉搜索树的高度是否平衡?

java - 类路径似乎正确,但 JVM 仍然无法找到或加载主类

android - 如何检查已解析的 XML 标记值是否为空

xml - 使用自定义属性扩展 XSD?