Методы создания и сохранения XML-файлов в JavaScript

Создать и сохранить XML-файлы в JavaScript можно различными методами. В этой статье блога я расскажу о нескольких подходах вместе с примерами кода. Давайте начнем!

Метод 1: создание XML с помощью DOMParser и XMLSerializer

Классы DOMParser и XMLSerializer можно использовать для создания и сериализации XML-документов.

// Create XML Document
const xmlDoc = document.implementation.createDocument(null, 'root');
// Create elements and attributes
const bookElement = xmlDoc.createElement('book');
const titleElement = xmlDoc.createElement('title');
titleElement.textContent = 'Sample Book';
bookElement.appendChild(titleElement);
xmlDoc.documentElement.appendChild(bookElement);
// Serialize XML to string
const serializer = new XMLSerializer();
const xmlString = serializer.serializeToString(xmlDoc);
// Save XML to a file
const blob = new Blob([xmlString], { type: 'text/xml' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'sample.xml';
link.click();

Метод 2: создание XML с помощью механизма шаблонов

Использование механизма шаблонов, такого как Handlebars.js или EJS, может упростить создание XML.

const Handlebars = require('handlebars');
// Define XML template
const xmlTemplate = `
<root>
  <book>
    <title>{{title}}</title>
  </book>
</root>
`;
// Compile the template
const template = Handlebars.compile(xmlTemplate);
// Provide data
const data = { title: 'Sample Book' };
// Generate XML
const xmlString = template(data);
// Save XML to a file (browser-specific method)
const blob = new Blob([xmlString], { type: 'text/xml' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'sample.xml';
link.click();

Метод 3: использование библиотеки XMLBuilder.js

XMLBuilder.js – это библиотека JavaScript, специально разработанная для создания XML.

const { create, element, xml } = require('xmlbuilder2');
// Create XML using XMLBuilder.js
const xmlDoc = create({ version: '1.0' }).ele('root').ele('book').ele('title').txt('Sample Book').end();
// Convert XML to string
const xmlString = xml(xmlDoc);
// Save XML to a file (browser-specific method)
const blob = new Blob([xmlString], { type: 'text/xml' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'sample.xml';
link.click();

Метод 4: использование серверной платформы (Node.js)

При работе с Node.js вы можете использовать модуль fsдля создания и сохранения XML-файлов.

const fs = require('fs');
// XML data
const xmlData = `
<root>
  <book>
    <title>Sample Book</title>
  </book>
</root>
`;
// Save XML to a file
fs.writeFile('sample.xml', xmlData, (err) => {
  if (err) {
    console.error(err);
    return;
  }
  console.log('XML file saved successfully.');
});