Arbeiten mit XML in JavaScript (Node.js): Bibliotheken und Werkzeuge

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einführung in die XML-Verarbeitung in der Node.js-Umgebung

XML (eXtensible Markup Language) bleibt ein gefragtes Format zum Speichern und Übertragen strukturierter Daten, insbesondere in Unternehmenssystemen, SOAP-Diensten, Konfigurationsdateien und Integrationslösungen. Im Node.js-Ökosystem gibt es mehrere ausgereifte Bibliotheken, mit denen sich XML-Dokumente effizient parsen, erstellen und ändern lassen. In diesem Artikel betrachten wir drei grundlegende Werkzeuge: xml2js (zur Konvertierung von XML in JSON und zurück), fast-xml-parser (Hochleistungsparser) und xmldom (Implementierung von DOM Level 2 für Node.js).



1. Bibliothek xml2js: Einfachheit und Vielseitigkeit

xml2js ist eine der beliebtesten Bibliotheken für die Arbeit mit XML in Node.js. Ihre Hauptaufgabe besteht darin, XML in JavaScript-Objekte (JSON) und zurück zu konvertieren. Dies ist die ideale Wahl, wenn Sie XML-Daten schnell in eine moderne JavaScript-Anwendung integrieren müssen.



Installation

npm install xml2js


Beispiel: XML in JSON parsen

const xml2js = require('xml2js');const parser = new xml2js.Parser({ explicitArray: false });

const xmlData = `<bookstore> <book category="programming"> <title lang="en">Learning Node.js</title> <author>John Doe</author> <price>29.99</price> </book></bookstore>`;

parser.parseString(xmlData, (err, result) => { if (err) { console.error('Parsing-Fehler:', err); return; } console.log(JSON.stringify(result, null, 2)); // Ausgabe: { bookstore: { book: { category: "programming", title: "Learning Node.js", author: "John Doe", price: "29.99" } } }});


Beispiel: XML aus JSON erstellen

const xml2js = require('xml2js');const builder = new xml2js.Builder({ headless: true });

const jsonObj = { root: { $: { xmlns: "http://example.com/ns" }, item: [ { $: { id: "1" }, _: "Erstes Element" }, { $: { id: "2" }, _: "Zweites Element" } ] }};

const xml = builder.buildObject(jsonObj);console.log(xml);/* Ausgabe:<root xmlns="http://example.com/ns"> <item id="1">Erstes Element</item> <item id="2">Zweites Element</item></root>*/


Schlüsselfunktionen:

  • Automatische Konvertierung von Attributen (Präfix $) und Textinhalten (Präfix _)
  • Parser-Konfiguration: explicitArray, explicitRoot, attrkey, charkey
  • Unterstützung von Namensräumen (namespaces)
  • Verarbeitung großer Dateien über Streams (Stream-Parsing)


2. fast-xml-parser: Leistung und Flexibilität

Wenn Sie maximale Parsing-Geschwindigkeit benötigen (z. B. bei der Verarbeitung Tausender XML-Dateien oder in Echtzeitanwendungen), sollten Sie fast-xml-parser in Betracht ziehen. Dieser Parser ist in reinem JavaScript geschrieben, aber für hohe Leistung optimiert.



Installation

npm install fast-xml-parser


Beispiel: Schnelles Parsen mit Validierung

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

const xmlData = `<config> <database host="localhost" port="5432"> <user>admin</user> <password>secret</password> </database></config>`;

// Validitätsprüfungconst validationResult = XMLValidator.validate(xmlData);if (validationResult !== true) { console.error('XML ist ungültig:', validationResult.err); process.exit(1);}

// Parsenconst parser = new XMLParser({ ignoreAttributes: false, attributeNamePrefix: "@_"});const jsonObj = parser.parse(xmlData);console.log(jsonObj.config.database["@_host"]); // localhostconsole.log(jsonObj.config.datab

Empfehlungen