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 xml2jsBeispiel: 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-parserBeispiel: 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 Auch in der Bibliothek
Arbeit mit CSV in TypeScript: Bibliotheken, Parsing und Datengenerierung
AddressSanitizer C++: Komplette Anleitung mit Beispielen
Maschinelles Lernen mit Rust: Überblick über Bibliotheken für ML und Data Science
Kotlin Task Scheduler: kotlinx.coroutines und Bibliotheken für Hintergrundaufgaben
Caching in C++: Redis, memcached, LevelDB und andere Tools