使用Dom解析器加载XML文件的问题

问题描述 投票:0回答:1

我是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");
        }
    }
java xml parsing dom nodelist
1个回答
0
投票

您尚未使用.getChildNodes()方法遍历标签下的一层并在其上循环,这就是为什么它只是为您获取第一个节点的信息。访问此链接,您可以找到一个很好的例子。

https://www.youtube.com/watch?v=HfGWVy-eMRc

© www.soinside.com 2019 - 2024. All rights reserved.