代码之家  ›  专栏  ›  技术社区  ›  Sallyerik

如何从NodeList转换为Array并在其他类中使用此Array?

  •  4
  • Sallyerik  · 技术社区  · 12 年前

    我试图使用一个XML文件,从中获取IP和子网的列表,然后我想检查这些IP是否在子网内。

    QueryXML getNodes = new QueryXML(Queries);  
    NodeList IPs = getNodes.query();
    
    QueryXML getSubnets = new QueryXML(Queries1);
    NodeList subnets = getSubnets.query();
    

    在这一点上,我已经有了XML文件(Ips&subnet)中每个元素的NodeList,但我现在的问题是,我想将这些NodeList转换为Array,因此,使用下面的元素,它调用一个具有两个数组的constructur作为参数。

    SubnetUtilsExample findobjects = new SubnetUtilsExample(IPs, subnets); 
    

    我在谷歌上搜索了一下,但没有找到正确的方法。有人能帮我吗?

    谢谢

    3 回复  |  直到 12 年前
        1
  •  3
  •   KeyMaker00    8 年前

    从Java 8开始,您可以使用IntStream和map,其中nodeList是 NodeList :

    List<Node> nodes = IntStream.range(0, nodeList.getLength())
            .mapToObj(nodeList::item)
            .collect(Collectors.toList());
    
        2
  •  1
  •   Sallyerik    12 年前

    我试着创建自己的方法,但不幸的是,我无法用这种方式修复它。

    最后,我所做的是创建一个ArrayList,并输入数组中每个项的NodeValue。然后,现在我有了一个Arraylist,其中包含QueryXML中的所有项目,可以使用了。

    最终代码:

    ArrayList<String> IPtable=new ArrayList<String>();
    QueryXML getNodes = new QueryXML(Queries);
    NodeList IPs = getNodes.query();
     for (int n=0; n<IPs.getLength();n++){
      String ip =IPs.item(n).getNodeValue();
       IPtable.add(ip);
    }
    ArrayList<String> IPSubnet=new ArrayList<String>();
    QueryXML getSubnets = new QueryXML(Queries1);
    NodeList subnets = getSubnets.query();
     for (int s=0; s<subnets.getLength();s++){
    String subnet =subnets.item(s).getNodeValue();
         IPSubnet.add(subnet);
    
    }
    

    我不确定这是不是正确的方法,但至少它能正确快速地工作。我希望它对其他人有用。

        3
  •  -3
  •   Micky Q    9 年前

    您也可以通过简单地添加这段代码将Nodelist转换为Array List

    var getNodesArray=[].切片.调用(IP);

    console.log(getNodesArray);