Чтение XML файла средствами JDOM XML

JDOM — Java библиотека, которая позволяет очень простой и удобный способ работы с XML документами. Объектная модель XML документа, которую строит библиотека JDOM позволяет производить операции чтения, изменения и записи в простой и удобной форме. Библиотека обладает простым и удобным API, работает быстро и не требует больших ресурсов (в отличие, например, от библиотеки DOM XML). Не смотря на то, что библиотека JDOM XML является альтернативой DOM XML и SAX XML, она обладает средствами для интеграции с ними.


Объектная модель, которую строит JDOM, предоставляет более дружелюбный к разработчику способ работы с XML документами, чем штатные средства Java.

В данной статье мы рассмотрим пример программы, в которой с помощью библиотеки JDOM XML будет открыт XML документ и по очереди выведены на печать все его элементы.

Скачать библиотеку JDOM

Если DOM и SAX входят в состав Java Development Kit, то JDOM является сторонней библиотекой и для того, чтобы использовать ее в программе, необходимо «подгрузить» ее в проект.

Если используется проект Ant, то нужно скачать последнюю версию библиотеки с Скачать JDOM и добавить ее в проект самостоятельно.

Если используется проект Maven, то нужно добавить зависимость:

<dependency>
    <groupId>jdom</groupId>
    <artifactId>jdom</artifactId>
    <version>1.1</version>
</dependency>

XML файл

<?xml version="1.0"?>
<company>
    <staff id="1001">
        <firstname>Иван</firstname>
        <lastname>Иванов</lastname>
        <nickname>ivanov</nickname>
        <salary>100000</salary>
    </staff>
    <staff id="2001">
        <firstname>Петр</firstname>
        <lastname>Петров</lastname>
        <nickname>petrov</nickname>
        <salary>200000</salary>
    </staff>
</company>

Чтение XML файла с помощью JDOM

package ru.j4web.examples.java.xml;

import java.io.File;
import java.io.IOException;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;

public class ReadXMLFileJDOMExample {

    private static final String FILENAME = "staff.xml";

    public static void main(String[] args) {
        SAXBuilder saxBuilder = new SAXBuilder();
        File xmlFile = new File(System.getProperty("user.dir")
                + File.separator + FILENAME);
        try {
            Document document = saxBuilder.build(xmlFile);
            Element rootNode = document.getRootElement();
            List<Element> staffList = rootNode.getChildren("staff");
            for (Element nextStaff : staffList) {
                System.out.println("Имя: "
                        + nextStaff.getChildText("firstname"));
                System.out.println("Фамилия: "
                        + nextStaff.getChildText("lastname"));
                System.out.println("Никнейм: "
                        + nextStaff.getChildText("nickname"));
                System.out.println("Зарплата: "
                        + nextStaff.getChildText("salary"));
            }
        } catch (JDOMException | IOException ex) {
            Logger.getLogger(ReadXMLFileJDOMExample.class.getName())
                    .log(Level.SEVERE, null, ex);
        }
    }
}
Имя: Иван
Фамилия: Иванов
Никнейм: ivanov
Зарплата: 100000
Имя: Петр
Фамилия: Петров
Никнейм: petrov
Зарплата: 200000

Полезная информация

Оставить комментарий

Ваш email нигде не будет показанОбязательные для заполнения поля помечены *

*