Arbeit mit XML in JavaScript (Node.js): Bibliotheken, Parsing und Erstellung
XML (eXtensible Markup Language) bleibt ein gefragtes Format für den Datenaustausch in Unternehmenssystemen, Konfigurationsdateien und älteren APIs. Im Node.js-Ökosystem gibt es mehrere ausgereifte Bibliotheken, mit denen sich XML-Dokumente effizient parsen, erstellen und transformieren lassen. In diesem Artikel betrachten wir die drei beliebtesten Bibliotheken: fast-xml-parser, xml2js und libxmljs, und zeigen praktische Beispiele für deren Verwendung.
1. fast-xml-parser – schneller und sicherer Parser
fast-xml-parser ist eine der leistungsfähigsten Bibliotheken für die Arbeit mit XML in Node.js. Sie unterstützt sowohl synchrones als auch asynchrones Parsing und kann XML-Dokumente gegen XSD-Schemata validieren.
Installation
npm install fast-xml-parserBeispiel für das Parsen von XML in ein JavaScript-Objekt
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));Die Einstellung ignoreAttributes: false ermöglicht das Beibehalten von XML-Tag-Attributen, und attributeNamePrefix fügt Attributnamen ein Präfix hinzu, um Konflikte mit normalen Tags zu vermeiden.
Erstellung von XML aus einem Objekt
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 – einfacher und zuverlässiger Konverter
xml2js ist eine klassische Bibliothek zur Umwandlung von XML in JSON und zurück. Sie bietet eine einfache API und ist gut dokumentiert.
Installation
npm install xml2jsXML-Parsing mit Fehlerbehandlung
const xml2js = require('xml2js');const fs = require('fs');
const parser = new xml2js.Parser({ explicitArray: false, // einzelne Elemente nicht in Arrays verpacken trim: true, normalizeTags: true // Tag-Schreibweise normalisieren});
fs.readFile('config.xml', 'utf-8', (err, data) => { if (err) { console.error('Fehler beim Lesen der Datei:', err); return; } parser.parseString(data, (parseErr, result) => { if (parseErr) { console.error('Fehler beim XML-Parsing:', parseErr); return; } console.log('Konfigurationsparameter:', result.configuration); });});XML-Erstellung mit 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 – für fortgeschrittene XML-Arbeit
l
Auch in der Bibliothek
OneOf für C# (.NET): Vollständige Anleitung mit Beispielen
Swagger/OpenAPI-Generierung für Java: Bibliotheken und Werkzeuge
Testen in C# (.NET): Vollständiger Überblick über Frameworks und Tools
Prometheus-Metriken in Node.js: Bibliothek prom-client
Konfiguration von Go-Anwendungen: Best Practices und Tools