Lim inn JavaScript til venstre og klikk "Convert" — vi gjør det om til XMLLim inn JavaScript-kode

Hva verktøyet gjør

Har du noen gang måttet sy sammen et XML-payload for hånd for å matche et JavaScript-objekt — til en SOAP-tjeneste, en RSS-feed, et sitemap eller en test-fixture — kjenner du smerten. XMLSerializer trenger et DOM, DOMParser går motsatt vei, og å bygge elementer for hånd betyr at du glemmer et child de tre første gangene. Lim inn JS-en her i stedet og få well-formed XML tilbake i én omgang. Funker for et vanlig objekt, en ES6 class pluss en new-instance, eller noe dypt nøstet.

Den forstår hvordan JS-verdier faktisk mapper til XML. Tall og boolske verdier blir sin string-form. Date-objekter kommer ut som ISO-8601. BigInt slippes ut som sin desimale string (uten n-suffikset). null- og undefined-felt blir tomme elementer i stedet for å bli kastet, så formen på outputen forblir stabil. Arrays blir container-elementer med ett child per item, navngitt etter parent-keyen i entall — et items-array i Order blir <items><item>...</item></items>, med mindre arrayet inneholder typede class-instances — da brukes class-navnet.

Class-definisjoner håndteres også. En class Order { constructor(...) { this.x = ...; } } pluss const order = new Order(...) gir deg en <Order>-rot med hver property som ble tilordnet i constructoren. Nøstede class-instances folder seg ut som nøstede elementer. Metoder, gettere, Symbol-keyed properties og properties som begynner med # (private fields) hoppes over. Limer du bare inn et plain object literal, serialiseres det direkte med et fornuftig rot-elementnavn.

Slik bruker du det

Tre trinn. Funker likt enten du limer inn et kort literal eller en hel modul.

1

Lim inn JavaScript-en din (eller prøv samplet)

Slipp JS-en i venstre editor som den er. Et plain object literal, en ES6 class + instance, et return fra en factory function, eller en Node.js-modul-export — alt går. Klikk Load Sample for å se et realistisk Order / OrderItem / Address-eksempel.

La const, let og import-statements stå. Du trenger ikke skrelle dem bort — parseren vet at den skal ignorere omkransende syntaks og lese de faktiske verdiene.

2

Trykk Convert

Klikk på den grønne Convert-knappen. Verktøyet leser JS, tar vare på hver class, array og nøstet objekt, og skriver XML ut i én omgang. En kort loading-indikator vises mens det kjører.

3

Kopier XML

Høyre panel fylles med innrykket, well-formed XML som enhver standard-kompatibel XML-parser godtar. Kopier det direkte inn i SOAP-requesten, RSS-templaten eller test-fixturen din.

Når det faktisk kommer til nytte

Bygge SOAP-request bodies

Du har et plain JS-objekt som speiler en SOAP-request og trenger XML-bodyen for å slenge inn i SoapUI, Postman eller et <code>fetch</code>-kall. Lim inn objektet, kopier XML, videre.

Generere RSS- og Atom-feeder

Gjør et feed-objekt med title, link og items om til et well-formed <a href="https://www.w3.org/TR/xml/" target="_blank" rel="noopener">XML</a>-skjelett du kan pakke i den rette RSS-enveloppen — uten å bygge elementer for hånd.

Starte sitemap.xml-filer

Lim inn et array med URL-objekter og få stillaset du trenger for et <code>&lt;urlset&gt;</code>-sitemap. Bytt inn riktig namespace, så er du ferdig.

Seede integrasjonstester

Konverter fixture-objektene fra Jest- eller Vitest-oppsettet ditt til XML seed-data for legacy-systemer, mock-servere eller en consumer som fortsatt snakker XML.

Vanlige spørsmål

Funker det med plain objekter, ES6 classes og arrays?

Ja, alle tre. Et plain object literal serialiseres direkte med keys som elementnavn. En ES6 class pluss en new-instance bruker class-navnet som rot-element. Arrays blir container-elementer med ett child per item, navngitt enten etter element-classen (hvis items er class-instances) eller etter keyen i entall.

Hvordan håndterer den Date, BigInt og null?

Date-objekter kommer ut som ISO-8601-strings. BigInt slippes ut som sin desimale string (n-suffikset forsvinner). null- og undefined-properties blir tomme elementer (<field/>) i stedet for å bli stille hoppet over — så et downstream XSD som forventer elementet, validerer fortsatt.

Hva med metoder, gettere og private fields?

Metoder og gettere på en class hoppes over — kun data-properties som faktisk ble satt på instancen, serialiseres. Private fields erklært med #, Symbol-keyed properties og properties på prototypen (ikke instancen) hoppes også over. Samme oppførsel som JSON.stringify.

Kan jeg lime inn bare et object literal, uten class?

Ja. Et rått const data = { ... } funker uten styr — det ytre variabelnavnet brukes som rot-element, eller et generisk <root> om det ikke er noen binding. Nøstede objekter og arrays inni folder seg ut som nøstede elementer på samme måte.

Escaper den spesialtegn som &amp;, &lt; og &gt;?

Ja. Tekstinnhold med &, <, >, " eller ' escapes til de tilsvarende XML-entitetene, slik at outputen alltid parser rent tilbake. Unicode-tegn blir stående som de er, og outputen er UTF-8.

Blir koden min lagret?

Koden din sendes til backend for å bli konvertert og blir ikke lagret — vi logger ikke payloadet. Som alltid med online-verktøy: er koden virkelig sensitiv, les den gjennom før du limer inn.

Andre verktøy du kanskje trenger

JavaScript til XML er bare én brikke i puslespillet. Her er verktøyene som spiller godt sammen med det: