Рубрики
Без рубрики

Как написать XML–файл на Java – (JDOM)

Примеры JDOM для записи XML-элементов, атрибутов, комментариев, CDATA в файл.

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

Содержание

  • 1. Скачать JDOM 2.x
  • 2. Запись XML-строки в консоль
  • 3. Запись XML в файл
  • 4. Напишите XML-атрибут, комментарий, CDATA и т.Д
  • 5. Изменить кодировку XML
  • 6. Скачать Исходный Код
  • 7. Рекомендации

P.S Протестировано с JDOM 2.0.6

1. Скачать JDOM 2.x

Мавен для JDOM.

  
      org.jdom
      jdom2
      2.0.6
  

2. Запись XML-строки в консоль

В приведенном ниже примере используется JDOM XMLOutputter для записи строки XML в поток вывода системной консоли.

package com.mkyong.xml.jdom;

import org.jdom2.Document;
import org.jdom2.JDOMException;
import org.jdom2.input.SAXBuilder;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

import java.io.IOException;
import java.io.StringReader;

public class WriteXmlJDom1 {

    public static void main(String[] args)
        throws JDOMException, IOException {

        writeSimpleXml();

    }

    private static void writeSimpleXml() throws JDOMException, IOException {

        String xml = "mkyong";
        SAXBuilder sb = new SAXBuilder();
        Document doc = sb.build(new StringReader(xml));

        // default in compact mode
        // XMLOutputter xmlOutputter = new XMLOutputter();

        // pretty print format
        XMLOutputter xmlOutputter = new XMLOutputter(Format.getPrettyFormat());

        // output to console
        xmlOutputter.output(doc, System.out);

    }

}

Выход



  mkyong

3. Запись XML в файл

В JDOM XMLOutputter поддержка вывода обоих Писатель или Поток вывода .

3.1 Ниже приведен пример записи XML в файл с помощью Поток вывода файла .

  XMLOutputter xmlOutputter = new XMLOutputter();

  // output to any OutputStream
  try(FileOutputStream fileOutputStream =
              new FileOutputStream("c:\\test\\file.xml")){
      xmlOutputter.output(new Document(), fileOutputStream);
  }

3.2 Ниже приведен пример записи XML в файл с помощью FileWriter .

  XMLOutputter xmlOutputter = new XMLOutputter();

  // output to any Writer
  try(FileWriter fileWriter =
              new FileWriter("c:\\test\\file.xml")){
      xmlOutputter.output(new Document(), fileWriter);
  }

3.3 Обзор в XMLOutputter.output перегруженные методы:

4. Напишите XML-атрибут, комментарий, CDATA и т.Д

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

package com.mkyong.xml.jdom;

import org.jdom2.CDATA;
import org.jdom2.Comment;
import org.jdom2.Document;
import org.jdom2.Element;
import org.jdom2.JDOMException;
import org.jdom2.output.Format;
import org.jdom2.output.XMLOutputter;

import java.io.IOException;
import java.io.OutputStream;

public class WriteXmlJDom3 {

  public static void main(String[] args) throws IOException {

      writeXml(System.out);

  }

  private static void writeXml(OutputStream output) throws IOException {

      Document doc = new Document();
      doc.setRootElement(new Element("company"));

      Element staff = new Element("staff");
      // add xml attribute
      staff.setAttribute("id", "1001");

      staff.addContent(new Element("name").setText("mkyong"));
      staff.addContent(new Element("role").setText("support"));
      staff.addContent(new Element("salary")
              .setAttribute("curreny", "USD").setText("5000"));

      // add xml comments
      staff.addContent(new Comment("for special characters like < &, need CDATA"));

      // add xml CDATA
      staff.addContent(new Element("bio")
              .setContent(new CDATA("HTML tag testing")));

      // append child to root
      doc.getRootElement().addContent(staff);

      Element staff2 = new Element("staff");
      staff2.setAttribute("id", "1002");
      staff2.addContent(new Element("name").setText("yflow"));
      staff2.addContent(new Element("role").setText("admin"));
      staff2.addContent(new Element("salary")
              .setAttribute("curreny", "EUD").setText("8000"));
      // add xml CDATA
      staff2.addContent(new Element("bio")
              .setContent(new CDATA("a & b")));

      // append child to root
      doc.getRootElement().addContent(staff2);

      XMLOutputter xmlOutputter = new XMLOutputter();

      // pretty print
      xmlOutputter.setFormat(Format.getPrettyFormat());
      xmlOutputter.output(doc, output);

  }

}

Выход



  
    mkyong
    support
    5000
    
    
  
  
    yflow
    admin
    8000
    
  

5. Изменить кодировку XML

Эти фрагменты кода изменяют кодировку XML на ISO-8859-1 .

  XMLOutputter xmlOutputter = new XMLOutputter();
  // change xml encoding
  xmlOutputter.setFormat(Format.getPrettyFormat().setEncoding("ISO-8859-1"));
  xmlOutputter.output(doc, output);

Выход



Примечание Больше примеров JDOM2 – JDOM2 Учебник

6. Скачать Исходный Код

$клон git $клон git

$компакт-диск java-xml

$cd src/основной/java/com/mkyong/xml/jdom/файловая система/

7. Рекомендации

Оригинал: “https://mkyong.com/java/how-to-create-xml-file-in-java-jdom-parser/”