Введение в XML в Go
Разметка хранит данные деревом элементов с открывающим и закрывающим тегом. У каждого узла есть имя, внутри могут лежать текст, другие элементы и атрибуты в открывающем теге. Такой текст читают люди и программы, его часто кладут в файл или передают между сервисами рядом с другими форматами обмена.
В Go за запись значений в такой текст и
чтение обратно отвечает пакет encoding/xml.
Структуры с полями он превращает в элементы
по правилам меток у полей, если поля доступны
снаружи пакета. Сборка дает срез байт и
ошибку, разбор принимает байты и указатель
на переменную, куда нужно положить результат.
Имена элементов и атрибутов задают строкой
в метке поля, как вы уже делали для другого
текстового формата в соседнем разделе.
Здесь те же обратные кавычки, но ключ
xml и другие суффиксы: текст между
тегами, вложенность и списки одноименных
узлов описывают отдельными приемами.
В этом разделе разберем имя элемента по метке, текст внутри тега, вложенную структуру, срез с повторяющимся именем и запись поля атрибутом. В конце закрепим приемы в задачах. Ошибку после сборки и разбора проверяют до использования байт или полей структуры.