XML в JavaScript без головной боли: знакомимся с node-xml2js

30 Apr, 2026
4,966
🔱 603
👥 67

Когда XML — это не приговор

Помните те времена, когда работа с XML в JavaScript была настоящей пыткой? Громоздкие DOM-парсеры, сложные API, непредсказуемые результаты... К счастью, в Node.js-экосистеме есть проверенное решение — пакет node-xml2js, который превращает работу с XML в удовольствие.

Что такое node-xml2js?

Это легковесный конвертер между XML и JavaScript-объектами, который:

  • Парсит XML в удобные JS-объекты
  • Позволяет генерировать XML из JS-объектов
  • Основан на проверенных библиотеках (sax-js и xmlbuilder-js)
  • Имеет простой и понятный API

Основные возможности

1. Простейший парсинг

const { parseString } = require('xml2js');
const xml = "<root>Hello xml2js!</root>";

parseString(xml, (err, result) => {
  console.dir(result);
  // { root: 'Hello xml2js!' }
});

Буквально три строчки — и вы получаете JavaScript-объект вместо XML-строки!

2. Гибкие опции парсинга

Хотите тримить пробелы или нормализовать теги? Легко:

parseString(xml, { 
  trim: true,
  normalizeTags: true,
  explicitArray: false 
}, callback);

3. Генерация XML из объектов

const { Builder } = require('xml2js');

const obj = {
  person: {
    $: { id: "123" }, // атрибуты
    name: "Alex",
    age: 30
  }
};

const builder = new Builder();
const xml = builder.buildObject(obj);

Результат:

Реклама
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<person id="123">
  <name>Alex</name>
  <age>30</age>
</person>

4. Поддержка Promise API

Для любителей современных подходов:

const parser = new Parser();
parser.parseStringPromise(xml)
  .then(result => console.dir(result))
  .catch(err => console.error(err));

5. Работа с пространствами имен

const obj = {
  'foo:Foo': {
    $: { 'xmlns:foo': 'http://foo.com' },
    'bar:Bar': {
      $: { 'xmlns:bar': 'http://bar.com' }
    }
  }
};

const xml = builder.buildObject(obj);

Где это пригодится?

  1. Работа с API — многие сервисы до сих пор используют XML
  2. Конфигурационные файлы — например, для старых проектов
  3. Преобразование данных — когда нужно конвертировать XML в JSON
  4. Генерация документов — RSS, SOAP и других XML-форматов

Под капотом

Проект использует:

Вывод: стоит ли использовать?

node-xml2js — это:

✅ Проверенное решение (существует с 2010 года) ✅ Простота использования ✅ Гибкость настроек ✅ Поддержка промисов ✅ Библиотека без зависимостей

Если ваш проект работает с XML в Node.js-окружении — обязательно попробуйте этот пакет. Он сэкономит вам кучу времени и нервов!

Установка:

npm install xml2js
# или
bower install xml2js

А вы уже используете xml2js в своих проектах? Делитесь опытом в комментариях!

🍪 Мы используем файлы cookie и сервис аналитики Яндекс.Метрика, чтобы сайт работал лучше. Продолжая пользоваться devtrends.ru, вы соглашаетесь с обработкой данных согласно Политике конфиденциальности.