В этом руководстве показано, как использовать 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 = ""; 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
Выход
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. Рекомендации
- Веб-сайт JDOM
- Документация JDOM2
- Википедия – JDOM
- Вывод XMLOutputter javadoc
- Писатель JavaDoc
- Выходной поток JavaDoc
- Как написать XML–файл на Java – (DOM-анализатор)
- Как написать XML-файл на Java (STAX Writer)
- Пример JAXB привет, мир
Оригинал: “https://mkyong.com/java/how-to-create-xml-file-in-java-jdom-parser/”