Создать и сохранить 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.');
});