Считывание xml файла java

140
23 февраля 2018, 17:36

Нужно, чтобы вывело все теги из file.xml. Почему выводит только одну картинку с ссылкой, а не все? Где ошибка и как исправить?

file.xml

    <?xml version="1.0" encoding="windows-1251"?>
    <DownloadFiles>
        <file>
            <name>cayyt.jpg</name>
            <url>http://fotohost.by/images/2018/02/20/1D2M0ViqRmE.jpg</url>
        </file>
        <file>
            <name>cot.jpg</name>
            <url>http://fotohost.by/images/2018/02/20/jCazpzBUG44.jpg</url>
        </file>
        <file>
            <name>cot.jpg</name>
            <url>http://fotohost.by/images/2018/02/20/jCazpzBUG44.jpg</url>
        </file>
    </DownloadFiles>

Код на java

try {
            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
            dbFactory.setValidating(false);
            DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
            Document doc = dBuilder.parse(file);
            doc.getDocumentElement().normalize();
            System.out.println("Корневой элемент: " + doc.getDocumentElement().getNodeName());
            NodeList nList = doc.getElementsByTagName("DownloadFiles");
            System.out.println();
            List<XmlFile> xmlList = new ArrayList<XmlFile>();

            for (int i = 0; i < nList.getLength(); i++) {
                Node nNode = nList.item(i);
                Element eElement = (Element) nNode;
                xmlList.add(getFileItem(nNode));
            }
            for (XmlFile obj : xmlList) {
                System.out.println(obj.toString());
            }
        } catch (Exception exc) {
            exc.printStackTrace();
        }
    }

    private static XmlFile getFileItem(Node node) {
        XmlFile xmlFile = new XmlFile();
        if (node.getNodeType() == Node.ELEMENT_NODE) {
            Element element = (Element) node;
            xmlFile.setName(getTagValue("name", element));
            xmlFile.setUrl(getTagValue("url", element));
        }
        return xmlFile;
    }
    private static String getTagValue(String tag, Element element) {
        NodeList nodeList = element.getElementsByTagName(tag).item(0).getChildNodes();
        Node node = (Node) nodeList.item(0);
        return node.getNodeValue();
    }

READ ALSO
Синхронизация с БД SQL

Синхронизация с БД SQL

Как правильно удалить данные с таблицы БД(SQL) при их отсутствии в списке(множестве) В java, с минимальным обращением к БД

170
RESTful java, проблема с ссылками

RESTful java, проблема с ссылками

Всем привет! Есть построенный Web Service на jax-rs 20

128
Mapping списка объектов как списка ID

Mapping списка объектов как списка ID

Есть класс пользователя и группы

140
Как использовать $.serialize() в ajax на wordpress

Как использовать $.serialize() в ajax на wordpress

Есть вот такой код и он работает:

175