Введение в XML в Java
XML - текстовый формат для структурированных данных. Его часто передают между сервисами или сохраняют в файле. Разметка похожа на HTML, но имена тегов и атрибутов задает автор схемы.
Документ начинается с объявления версии и содержит один корневой тег, внутри которого лежит всё содержимое. Каждый тег может иметь атрибуты в угловых скобках и текст между открывающим и закрывающим именем:
<?xml version="1.0"?>
<root>
<city code="spb">Saint Petersburg</city>
</root>
Здесь корень - root, внутри тег city
с атрибутом code и текстом названия.
В Java 27 такой текст разбирают через DOM API из JDK:
фабрика DocumentBuilderFactory создаёт
DocumentBuilder, а строка передаётся через
InputSource и StringReader.
Короткий разбор той же строки в программе выглядит так:
import org.w3c.dom.Element;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.StringReader;
public class Main {
public static void main(String[] args) throws Exception {
String xml = """
<?xml version="1.0"?>
<root>
<city code="spb">Saint Petersburg</city>
</root>
""";
var builder = DocumentBuilderFactory
.newInstance()
.newDocumentBuilder();
var doc = builder.parse(
new InputSource(new StringReader(xml))
);
Element root = doc.getDocumentElement();
System.out.println(root.getTagName());
Element city = (Element) doc
.getElementsByTagName("city")
.item(0);
System.out.println(
city.getAttribute("code")
);
System.out.println(city.getTextContent());
}
}
Метод getDocumentElement указывает на корень,
getElementsByTagName находит узлы по имени,
getTextContent возвращает текст внутри тега.
Дальнейшие уроки опираются на эту цепочку без
отдельных библиотек.