【问题标题】:Nodelist to arraylist<String> conversionNodelist 到 arraylist<String> 的转换
【发布时间】:2012-05-05 07:37:35
【问题描述】:

我已经提取了节点列表,例如, this.NodeList xml = doc.getElementsByTagName(tagName)

现在我想把 xml 转换成 ArrayList 类型,有什么建议吗?

【问题讨论】:

    标签: java xml


    【解决方案1】:

    关于 Java

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

    List<String> nodeNames = IntStream.range(0, nodeList.getLength())
            .mapToObj(nodeList::item)
            .map(n -> n.getNodeName())
            .collect(Collectors.toList());
    

    这会将节点的名称收集到一个列表中。

    为了更通用的目的,您可以收集Node 元素然后对其进行处理:

    List<Node> nodes = IntStream.range(0, nodeList.getLength())
            .mapToObj(nodeList::item)
            .collect(Collectors.toList());
    

    请注意,从 Java 10 开始,您也可以只使用 var 而不是 List&lt;Node&gt;

    var nodes = IntStream.range(0, nodeList.getLength())
            .mapToObj(nodeList::item)
            .collect(Collectors.toList());
    

    【讨论】:

      【解决方案2】:
      var nodeArrayList = new ArrayList(xmlNodeList.OfType<XmlNode>().ToList());
      

      【讨论】:

      • 假设它是 C#,没有充分的理由使用 ArrayList 而不是 List&lt;XmlNode&gt;
      • @DBM:同意,但他可能只是想将正确的参数传递给一些他无法控制的现有方法。问题不多。
      • 虽然ArrayListList&lt;something&gt; 的实现,但并没有太大的优势。与此相关的有趣答案stackoverflow.com/a/391257/448232
      猜你喜欢
      • 2012-10-19
      • 2022-01-02
      • 2015-08-06
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多