有人可以告诉我为什么这段代码中的迭代器不返回元素对象吗?!?无法转换到元素对象!这是 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/