Trabalhando com XML em JavaScript (Node.js): bibliotecas e exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com XML em JavaScript (Node.js): bibliotecas, parsing e criação



XML (eXtensible Markup Language) continua sendo um formato popular para troca de dados em sistemas corporativos, arquivos de configuração e APIs legadas. No ecossistema Node.js, existem várias bibliotecas maduras que permitem analisar, criar e transformar documentos XML de forma eficiente. Neste artigo, veremos as três bibliotecas mais populares: fast-xml-parser, xml2js e libxmljs, além de mostrar exemplos práticos de seu uso.



1. fast-xml-parser — um parser rápido e seguro



fast-xml-parser é uma das bibliotecas mais performáticas para trabalhar com XML em Node.js. Ela suporta parsing síncrono e assíncrono, além de validar documentos XML com esquemas XSD.



Instalação

npm install fast-xml-parser


Exemplo de parsing de XML para objeto JavaScript

const { XMLParser } = require('fast-xml-parser');

const xmlData = `<?xml version="1.0" encoding="UTF-8"?><bookstore> <book category="programming"> <title lang="en">JavaScript: The Good Parts</title> <author>Douglas Crockford</author> <year>2008</year> <price>29.99</price> </book></bookstore>`;

const parser = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: '@_'});

const result = parser.parse(xmlData);console.log(JSON.stringify(result, null, 2));


A configuração ignoreAttributes: false permite preservar os atributos das tags XML, e attributeNamePrefix adiciona um prefixo aos nomes dos atributos para evitar conflitos com tags comuns.



Criação de XML a partir de um objeto

const { XMLBuilder } = require('fast-xml-parser');

const builder = new XMLBuilder({ format: true, ignoreAttributes: false});

const obj = { bookstore: { book: { '@_category': 'programming', title: { '@_lang': 'en', '#text': 'Clean Code' }, author: 'Robert C. Martin', year: 2008, price: 39.99 } }};

const xmlOutput = builder.build(obj);console.log(xmlOutput);


2. xml2js — um conversor simples e confiável



xml2js é uma biblioteca clássica para converter XML em JSON e vice-versa. Ela oferece uma API simples e é bem documentada.



Instalação

npm install xml2js


Parsing de XML com tratamento de erros

const xml2js = require('xml2js');const fs = require('fs');

const parser = new xml2js.Parser({ explicitArray: false, // não agrupar elementos únicos em arrays trim: true, normalizeTags: true // normalizar maiúsculas/minúsculas das tags});

fs.readFile('config.xml', 'utf-8', (err, data) => { if (err) { console.error('Erro ao ler o arquivo:', err); return; } parser.parseString(data, (parseErr, result) => { if (parseErr) { console.error('Erro ao fazer parsing do XML:', parseErr); return; } console.log('Parâmetros de configuração:', result.configuration); });});


Criação de XML com xml2js

const xml2js = require('xml2js');

const builder = new xml2js.Builder({ xmldec: { version: '1.0', encoding: 'UTF-8' }, renderOpts: { pretty: true, indent: ' ' }});

const obj = { response: { status: 'success', data: { user: { id: 123, name: 'João Pedro', email: 'joao@example.com' } } }};

const xml = builder.buildObject(obj);console.log(xml);


3. libxmljs — para trabalho avançado com XML



l

Recommendations