Как читать XML-файл в Java - (JDOM Parser)

Как читать XML-файл в Java - (JDOM Parser)

Проще говоря, JDOM - это Java-представление XML-документа. JDOM предоставляет способ представления этого документа для простого и эффективного чтения, манипулирования и письма. Он имеет простой API, легкий и быстрый, и оптимизирован для программиста Java. Это альтернатива DOM и SAX, хотя она хорошо интегрируется с DOM и SAX.

JDOM, синтаксический анализатор Java XML, более удобен для доступа к XML-документу.

В этом примере мы покажем вам, как использовать JDOM для чтения XML-файла и упорядоченной распечатки каждого элемента.

1. Загрузите библиотеку JDOM

JDOM не похож на SAX или DOM, которые включены в JDK. Чтобы использовать JDOM, вам необходимо скачать библиотеку вручную.

Получите JDOM отJDOM official site или объявите следующую зависимость, если вы используете Maven.

    
    jdom
    jdom
    1.1
    

2. XML-файл

XML-файл следующим образом



    
        yong
        mook kim
        example
        100000
    
    
        low
        yin fong
        fong fong
        200000
    

3. Файл Java

Используйте анализатор JDOM для разбора файла XML выше.

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

public class ReadXMLFile {
    public static void main(String[] args) {

      SAXBuilder builder = new SAXBuilder();
      File xmlFile = new File("c:\\file.xml");

      try {

        Document document = (Document) builder.build(xmlFile);
        Element rootNode = document.getRootElement();
        List list = rootNode.getChildren("staff");

        for (int i = 0; i < list.size(); i++) {

           Element node = (Element) list.get(i);

           System.out.println("First Name : " + node.getChildText("firstname"));
           System.out.println("Last Name : " + node.getChildText("lastname"));
           System.out.println("Nick Name : " + node.getChildText("nickname"));
           System.out.println("Salary : " + node.getChildText("salary"));

        }

      } catch (IOException io) {
        System.out.println(io.getMessage());
      } catch (JDOMException jdomex) {
        System.out.println(jdomex.getMessage());
      }
    }
}

Выход

First Name : yong
Last Name : mook kim
Nick Name : example
Salary : 100000
First Name : low
Last Name : yin fong
Nick Name : fong fong
Salary : 200000

Note
Вы также можете воспользоваться следующими двумя примерами: