Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvSpXmBld 228 of 322 menu
◀ ▶

Сборка XML-документа в Java

Разбор строки - не единственный путь. Тот же DocumentBuilder умеет создать пустой Document, после чего узлы добавляют вручную:

import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers.DocumentBuilderFactory; public class Main { public static void main(String[] args) throws Exception { var builder = DocumentBuilderFactory.newInstance() .newDocumentBuilder(); Document doc = builder.newDocument(); Element root = doc.createElement("root"); doc.appendChild(root); } }

Дочерние элементы создают через createElement, текст задают свойством setTextContent, атрибуты - setAttribute, связь с родителем - appendChild:

import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers.DocumentBuilderFactory; public class Main { public static void main(String[] args) throws Exception { var builder = DocumentBuilderFactory.newInstance() .newDocumentBuilder(); Document doc = builder.newDocument(); Element root = doc.createElement("root"); doc.appendChild(root); Element note = doc.createElement("note"); note.setAttribute("lang", "en"); note.setTextContent("memo"); root.appendChild(note); } }

Готовое дерево превращают в текст через Transformer и поток в память:

import org.w3c.dom.Document; import org.w3c.dom.Element; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import java.io.StringWriter; public class Main { public static void main(String[] args) throws Exception { var builder = DocumentBuilderFactory.newInstance() .newDocumentBuilder(); Document doc = builder.newDocument(); Element root = doc.createElement("root"); doc.appendChild(root); Element note = doc.createElement("note"); note.setTextContent("memo"); root.appendChild(note); StringWriter writer = new StringWriter(); TransformerFactory.newInstance().newTransformer() .transform( new DOMSource(doc), new StreamResult(writer) ); System.out.println(writer); } }

Соберите документ с корнем catalog и одним тегом book с атрибутом isbn "978-0" и текстом "Java guide". Выведите получившуюся строку XML в консоль.

Соберите корень shipment и два тега crate с атрибутами weight "10" и "15". Внутри каждого crate добавьте label с текстами "A" и "B". Напечатайте итоговый XML одной строкой вывода.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить