我是Java编程的新手,在读取XML文件时遇到问题。我正在尝试使用DOM解析器从XML保存信息。我将xml加载到文档中,然后尝试将所有广播频道的时间表保存在NodeList中。但是该程序只是第一个节点的信息反复保存。我的代码在哪里出问题?
NodeList episodeElement = doc.getElementsByTagName("schedule");
for (int i = 0; i < episodeElement.getLength(); i++) {
Node n = episodeElement.item(i);
if (n.getNodeType() == Node.ELEMENT_NODE && getSize(doc) != 0) {
Element e = (Element) n;
String title = e.getElementsByTagName("title").item(i).getTextContent();
NodeList nd = e.getElementsByTagName("description");
String description;
if (nd.getLength() > 0) {
description = nd.item(i).getTextContent();
}else {
description = null;
}
String startTime = e.getElementsByTagName("starttimeutc").item(i).getTextContent();
String endTime = e.getElementsByTagName("endtimeutc").item(i).getTextContent();
Program prog = new Program(id, title, description, startTime, endTime);
System.out.println(startTime);
programs.add(i, prog);
}
else {
System.out.println("No schedules found");
}
}
您尚未使用.getChildNodes()方法遍历标签下的一层并在其上循环,这就是为什么它只是为您获取第一个节点的信息。访问此链接,您可以找到一个很好的例子。