JavaScript links einfügen, dann auf "Convert" klicken — wir machen XML drausJavaScript-Code einfügen

Was dieses Tool tut

Wenn du jemals von Hand ein XML-Payload basteln musstest, das zu einem JavaScript-Objekt passt — für einen SOAP-Service, einen RSS-Feed, eine Sitemap oder eine Test-Fixture —, kennst du den Schmerz. XMLSerializer braucht ein DOM, DOMParser geht die andere Richtung, und Elemente von Hand zusammenstecken heißt, dass du die ersten drei Mal ein Child vergisst. Füg das JS stattdessen hier ein und kriegst in einem Rutsch well-formed XML zurück. Funktioniert für ein schlichtes Objekt, eine ES6-Klasse plus new-Instanz oder irgendwas tief Verschachteltes.

Es versteht, wie JS-Werte tatsächlich auf XML mappen. Zahlen und Booleans werden zu ihrer String-Form. Date-Objekte kommen als ISO-8601 raus. BigInt wird als Dezimal-String emittiert (ohne das n-Suffix). null- und undefined-Felder werden zu leeren Elementen, statt weggeworfen zu werden — so bleibt die Output-Form stabil. Arrays werden zu Container-Elementen mit einem Child pro Item, benannt nach dem Parent-Key in der Einzahl — ein items-Array in Order wird zu <items><item>...</item></items>, außer das Array enthält typisierte Klassen-Instanzen — dann wird der Klassenname genommen.

Klassendefinitionen werden auch abgedeckt. Ein class Order { constructor(...) { this.x = ...; } } plus const order = new Order(...) gibt dir einen <Order>-Root mit jeder Property, die im Konstruktor gesetzt wurde. Verschachtelte Klassen-Instanzen werden zu verschachtelten Elementen. Methoden, Getter, Symbol-Keys und Properties, die mit # anfangen (Private Fields), werden übersprungen. Wenn du nur ein plain Object Literal einfügst, wird es direkt mit einem sinnvollen Root-Element-Namen serialisiert.

So nutzt du es

Drei Schritte. Funktioniert gleich, egal ob du ein kurzes Literal oder ein ganzes Modul einfügst.

1

JavaScript einfügen (oder das Sample testen)

Dein JS einfach in den linken Editor werfen — wie es ist. Ein plain Object Literal, eine ES6-Klasse + Instanz, ein Return aus einer Factory-Function oder ein Node.js-Modul-Export — alles geht. Klick Load Sample, um ein realistisches Order / OrderItem / Address-Beispiel zu sehen.

Lass const, let und import-Statements drin. Du musst sie nicht rauspulen — der Parser weiß, dass er die umschließende Syntax ignorieren und die eigentlichen Werte lesen muss.

2

Convert drücken

Klick auf den grünen Convert-Button. Das Tool liest das JS, bewahrt jede Klasse, jedes Array und jedes verschachtelte Objekt und spuckt das XML in einem Rutsch raus. Kurz läuft ein Ladeindikator mit.

3

XML kopieren

Das rechte Panel füllt sich mit eingerücktem, well-formed XML, das jeder standardkonforme XML-Parser akzeptiert. Direkt rein damit in deinen SOAP-Request, dein RSS-Template oder deine Test-Fixture.

Wann das wirklich was bringt

SOAP-Request-Bodies bauen

Du hast ein plain JS-Objekt, das einen SOAP-Request spiegelt, und brauchst den XML-Body für SoapUI, Postman oder einen <code>fetch</code>-Call. Objekt einfügen, XML kopieren, weiter.

RSS- und Atom-Feeds erzeugen

Ein Feed-Objekt mit title, link und items in ein well-formed <a href="https://www.w3.org/TR/xml/" target="_blank" rel="noopener">XML</a>-Grundgerüst verwandeln, das du in die passende RSS-Envelope packen kannst — ohne Elemente von Hand zu bauen.

sitemap.xml-Dateien anfangen

Füg ein Array aus URL-Objekten ein und kriegst das Gerüst, das du für eine <code>&lt;urlset&gt;</code>-Sitemap brauchst. Richtigen Namespace reintauschen, fertig.

Integration-Tests seeden

Wandle die Fixture-Objekte aus deinem Jest- oder Vitest-Setup in XML-Seed-Daten für Legacy-Systeme, Mock-Server oder irgendeinen Consumer um, der immer noch XML spricht.

Typische Fragen

Geht das mit plain Objects, ES6-Klassen und Arrays?

Ja, alle drei. Ein plain Object Literal wird direkt serialisiert — die Keys werden Element-Namen. Eine ES6-Klasse plus new-Instanz nimmt den Klassennamen als Root-Element. Arrays werden zu Container-Elementen mit einem Child pro Item, benannt entweder nach der Element-Klasse (wenn es Klassen-Instanzen sind) oder nach dem Key in der Einzahl.

Wie geht es mit Date, BigInt und null um?

Date-Objekte kommen als ISO-8601-Strings raus. BigInt wird als Dezimal-String emittiert (das n-Suffix fliegt raus). null- und undefined-Properties werden zu leeren Elementen (<field/>), statt still übersprungen zu werden — so validiert ein downstream XSD, das dieses Element erwartet, trotzdem.

Was ist mit Methoden, Gettern und Private Fields?

Methoden und Getter einer Klasse werden übersprungen — nur Datenproperties, die tatsächlich auf der Instanz gesetzt wurden, werden serialisiert. Mit # deklarierte Private Fields, Symbol-Keys und Properties auf dem Prototype (nicht der Instanz) werden ebenfalls weggelassen. Passt genau zu dem, was JSON.stringify tun würde.

Kann ich einfach ein Object Literal ohne Klasse einfügen?

Ja. Ein rohes const data = { ... } funktioniert problemlos — der äußere Variablenname wird Root-Element, oder ein generisches <root>, falls kein Binding da ist. Verschachtelte Objekte und Arrays innen werden auf die gleiche Weise zu verschachtelten Elementen.

Werden Sonderzeichen wie &amp;, &lt; und &gt; escaped?

Ja. Textinhalt mit &, <, >, " oder ' wird zu den passenden XML-Entities escaped, damit der Output immer sauber wieder parst. Unicode-Zeichen bleiben wie sie sind, der Output ist UTF-8.

Wird mein Code gespeichert?

Dein Code geht zum Konvertieren ans Backend und wird nicht persistiert — wir loggen das Payload nicht. Wie immer bei Online-Tools: Wenn der Code wirklich sensibel ist, lies ihn vor dem Einfügen nochmal drüber.

Andere Tools, die du vielleicht brauchst

JavaScript zu XML ist nur ein Puzzle-Teil. Das hier passt gut dazu: