java - 迭代器不返回元素对象或不转换为其相应的对象?

标签 java jdom

有人可以告诉我为什么这段代码中的迭代器不返回元素对象吗?!?无法转换到元素对象!这是 SAX 的 JDOM 实现!

        org.xml.sax.InputSource inStream = new org.xml.sax.InputSource();

        inStream.setCharacterStream(new java.io.StringReader(temp));


        SAXBuilder builder = new SAXBuilder();

        Document doc = builder.build(inStream);   
        ArrayList<String> queries = new ArrayList<String>();
        Element root = doc.getRootElement();

        Iterator elemIter = root.getDescendants();

        while (elemIter.hasNext()) {

            **Element tempElem = (Element)elemIter.next();** 
            String CDATA = tempElem.getChildText("ZQuery");
            queries.add(CDATA);
            elemIter.next();
        }

最佳答案

考虑这个 XML 文档:

<root>
    <child/>
</root>

根的后代是:

  • 包含换行符 + 4 个空格的文本节点
  • 子元素
  • 包含换行符的文本节点

此外,getDescendants 遍历所有后代,而不仅仅是该元素的直接子元素。我很确定这不是您想要的。

关于java - 迭代器不返回元素对象或不转换为其相应的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7776496/

相关文章:

java - 如何在 Java 中从 .png 文件创建字体?

java - 使用 netbeans 项目在 Linux 中构建无法工作

java - 创建六边形网格图案

java 。使用扫描器将整数值转换为字符串

java - JDOM 正在使用太多内存

java - 解析 Facebook 的 XML 查询响应问题

java - JDOM Xml 将成员对象添加到 XML

java - 奇怪的距离 Java 3d

java - 如何从字符串创建元素