Перейти к содержимому

XML

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

const XML = await crafttechApi.XMLClass();

Класс XML — это класс, экземпляр которого служит родительским для формирования содержимого XML-файлов.

let xml = new XML();

Конструктор класса, который используется для инициализации экземпляра.

  • Принимает:
    • rootTag (тип XMLTag) — необязательный параметр; корневой тег файла;
  • Возвращает:
    • экземпляр класса XML.
xml.setRoot(rootTag);

Сеттер, который позволяет установить корневой тег файла.

  • Параметры:
    • root (тип XMLTag) — корневой тег файла;
  • Возвращает:
    • Метод ничего не возвращает.
xml.removeRoot();

Очищает корень файла. Применяется, если необходимо очистить содержимое.

  • Параметры:
    • Метод не принимает параметры.
  • Возвращает:
    • Метод ничего не возвращает.
xml.getRoot();

Используется для получения корня файла.

  • Параметры:
    • Метод не принимает параметры.
  • Возвращает:
    • Метод возвращает корень файла (экземпляр класса XMLTag).
let content = xml.getContent();
console.log(content);

Возвращает текстовое содержимое XML-файла, сформированное согласно root tag и его дочерним объектам.

  • Параметры:
    • Метод не принимает параметры.
  • Возвращает:
    • textData (string) — текстовое содержимое XML-файла.
const XMLTag = await crafttechApi.XMLTagClass();

Класс XMLTag — это дочерний класс, который позволяет создавать вложенность элементов в XML-файле.

let rootTag = new XMLTag("rootTag");

Конструктор класса, который используется для инициализации экземпляра.

  • Принимает:

    • tag (string) — название тега;

    • attrs (object) — необязательный параметр; хранятся атрибуты тега по ключу и значению;

    • children (array) — необязательный параметр; массив экземпляров XMLTag, которые будут являться его дочерними элементами;

    • content — необязательный параметр; содержимое тега.

      Обратите внимание, что при формировании содержимого XML-файла поле content имеет приоритет перед полем children, что означает полное игнорирование дочерних элементов в пользу содержимого тега.

  • Возвращает:

    • экземпляр класса XMLTag.
let xmlTag = new XMLTag("tag", { attr1: "val1" }, [], "content");
rootTag.addChild(xmlTag);

Позволяет добавить дочерний элемент в тег.

  • Параметры:
    • child (тип XMLTag) — дочерний элемент, который нужно добавить в тег.
  • Возвращает:
    • Метод ничего не возвращает.
rootTag.removeChild(xmlTag);

Удаляет дочерний элемент из массива дочерних элементов, если он входит в их число.

  • Параметры:
    • child (тип XMLTag) — дочерний элемент, который нужно удалить.
  • Возвращает:
    • Метод ничего не возвращает.
rootTag.getChildren();

Позволяет получить все дочерние теги для конкретного экземпляра класса.

  • Параметры:
    • Метод не принимает параметры.
  • Возвращает:
    • Метод возвращает массив экземпляров класса XMLTag, которые являются дочерними элементами тега.
rootTag.addAttr("attribute", "attrValue");

Добавляет атрибут для тега.

  • Параметры:
    • name - строковое название атрибута;
    • value - значение атрибута**.**
  • Возвращает:
  • Метод ничего не возвращает.
rootTag.deleteAttr("attribute");

Удаляет атрибут тега по его названию.

  • Параметры:
    • name - строковое название атрибута;
  • Возвращает:
    • Метод ничего не возвращает.
let attrs = {
attr1: "value1",
attr2: "value2",
attr3: "value3",
};
rootTag.setAttrs(attrs);

Заменяет атрибуты тега на переданные.

  • Параметры:
    • attrs (object) — объект, который хранит в себе ключ-значение атрибута.
  • Возвращает:
    • Метод ничего не возвращает.
rootTag.setContent("tagContent");

Устанавливает содержимое тега.

  • Параметры:
    • content (string | number) — содержимое, которое хотим добавить в тег.
  • Возвращает:
    • Метод ничего не возвращает.
rootTag.removeContent();

Удаляет содержимое тега.

  • Параметры:
    • Метод не принимает параметры.
  • Возвращает:
    • Метод ничего не возвращает.
let content = rootTag.getContent();
console.log(content);

Получает содержимое тега и его дочерних тегов в формате XML.

  • Параметры:
    • Метод не принимает параметры.
  • Возвращает:
    • Содержимое тега и его дочерних тегов в формате XML.
const XML = await crafttechApi.XMLClass();
const XMLTag = await crafttechApi.XMLTagClass();
let xml = new XML();
let rootTag = new XMLTag("rootTag");
xml.setRoot(rootTag);
let tagsObject = {
tag1: {
attr1: "stroka",
attr2: 2,
attr3: "new",
},
nexml: {
attr1: "stroka2",
attr2: 3,
attr3: "new2",
},
};
for (const [key, value] of Object.entries(tagsObject)) {
let xmlTag = new XMLTag(key, value);
rootTag.addChild(xmlTag);
let xmlChild = new XMLTag(`${key}Child`, value);
xmlTag.addChild(xmlChild);
let xmlChild2 = new XMLTag(`${key}ChildAttr`, value, [], "myContent");
xmlTag.addChild(xmlChild2);
}
let content = xml.getContent();
console.log(content);