Travailler avec XML en JavaScript (Node.js) : bibliothèques et exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Travailler avec XML en JavaScript (Node.js) : bibliothèques, analyse et création



XML (eXtensible Markup Language) reste un format très demandé pour l'échange de données dans les systèmes d'entreprise, les fichiers de configuration et les API héritées. Dans l'écosystème Node.js, il existe plusieurs bibliothèques matures permettant d'analyser, créer et transformer efficacement des documents XML. Dans cet article, nous examinerons les trois bibliothèques les plus populaires : fast-xml-parser, xml2js et libxmljs, et montrerons des exemples pratiques de leur utilisation.



1. fast-xml-parser — un analyseur rapide et sécurisé



fast-xml-parser est l'une des bibliothèques les plus performantes pour travailler avec XML dans Node.js. Elle prend en charge l'analyse synchrone et asynchrone, et peut également valider des documents XML par rapport à des schémas XSD.



Installation

npm install fast-xml-parser


Exemple d'analyse XML en objet 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));


Le paramètre ignoreAttributes: false permet de conserver les attributs des balises XML, et attributeNamePrefix ajoute un préfixe aux noms d'attributs pour éviter les conflits avec les balises normales.



Création de XML à partir d'un objet

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 — un convertisseur simple et fiable



xml2js est une bibliothèque classique pour convertir XML en JSON et vice versa. Elle offre une API simple et est bien documentée.



Installation

npm install xml2js


Analyse XML avec gestion des erreurs

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

const parser = new xml2js.Parser({ explicitArray: false, // ne pas encapsuler les éléments uniques dans des tableaux trim: true, normalizeTags: true // normaliser la casse des balises});

fs.readFile('config.xml', 'utf-8', (err, data) => { if (err) { console.error('Erreur de lecture du fichier :', err); return; } parser.parseString(data, (parseErr, result) => { if (parseErr) { console.error('Erreur d'analyse XML :', parseErr); return; } console.log('Paramètres de configuration :', result.configuration); });});


Création de XML avec 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: 'Ivan Petrov', email: 'ivan@example.com' } } }};

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


3. libxmljs — pour un travail avancé avec XML



l

Recommendations