betacode

Руководство Java JDOM2

  1. Введение
  2. Библиотека
  3. Начать пример
  4. Сравнить разницу между JDOM и DOM

1. Введение

JDOM это модель XML в памяти (memory) используется для чтения, написания, создания и изменения документов XML . JDOM похож на DOM trong оба предоставляют данные в XML памяти.
DOM предназначен для одинаковой работы с разными языками (C, C++, ECMAScript , Java , JScript , Lingo , PHP, PLSQL , và Python) .
  • JDOM создан только для Java и использует определенные естественные функции Java, которые избегаются моделью DOM. Из-за этого, JDOM нарочно не выполняет по стандартам DOM w3c . JDOM не является XML-парсером (XML Parser), но может использовать SAX, Stax или DOM парсер для создания (build) документов JDOM . Версии JDOM начиная с 2.0.0 ( JDOM2 ) все используют функции языка Java 6 и более поздних версий как Generics , Enums , var-args , ковариантные возвращаемые типы (co-variant data type), и т.д.
Узнать больше:

2. Библиотека

В отличии от DOM доступного в JDK, с JDOM вам нужно скачать эту библиотеку для использования:
Вы можете скачать на домашней странице JDOM по ссылке:
Или просто скачать с Maven Repository (Репозиторий maven):

3. Начать пример

Иллюстрация Project после завершения:
department-datas.xml
<?xml version="1.0"?>
<department>

  <employee>
      <empNo>E01</empNo>
      <empName>KING</empName>
      <hireDate>17-11-1981</hireDate>
      <salary>100000</salary>
  </employee>

  <employee>
      <empNo>E02</empNo>
      <empName>JONES</empName>
      <hireDate>02-04-1981</hireDate>
      <salary>200000</salary>
  </employee>

</department>
ReadXMLFile.java
package org.o7planning.tutorial.jdom2;

import java.io.File;
import java.io.IOException;
import java.util.List;

import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;

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

       SAXBuilder builder = new SAXBuilder();
       File xmlFile = new File("department-datas.xml");
       
       System.out.println("Parsing FILE: "+ xmlFile.getAbsolutePath());

       try {

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

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

               Element node = (Element) list.get(i);
               
               System.out.println(" ------ ");
               
               System.out.println("Emp No : " + node.getChildText("empNo"));
               
               System.out.println("Emp Name : " + node.getChildText("empName"));
               
               System.out.println("Hire Date : " + node.getChildText("hireDate"));
               
               System.out.println("Salary : " + node.getChildText("salary"));

           }

       } catch (IOException e) {
           System.out.println(e.getMessage());
       } catch (JDOMException e) {
           System.out.println(e.getMessage());
       }
   }
}
Результат после запуска класса ReadXMLFile:

4. Сравнить разницу между JDOM и DOM

TODO