Swift til XML-konverter
Indsæt Swift-structs eller en udfyldt instans. Få ren XML tilbage.
Hvad værktøjet gør
Hvis du nogensinde har skullet hamre XML sammen i hånden der spejler en Swift-struct — til en plist, til en SOAP-klient der snakker med et legacy-ERP, eller til en testfixture til XMLParser — så ved du hvor mange krøllede parenteser der bliver tastet. Indsæt Swift her og få velformet XML tilbage i én omgang. En enkelt struct, en fil med flere structs og enums, eller en udfyldt let order = Order(...)-instans — resultatet er det samme: et komplet XML-dokument hvor hver property er bevaret.
Det er ikke dum strengerstatning. Konverteren ved hvordan Swift faktisk serialiserer — cirka som en Codable-drevet XMLEncoder ville håndtere det. Decimal-værdier kommer ud som almindelig numerisk tekst, Date bliver en ISO-8601-streng, UUID bliver standardformatet 8-4-4-4-12 i hex, og Optional<T> med nil bliver et tomt element i stedet for at forsvinde. Arrays følger en konsistent container-form — hvert array bliver til et wrapper-element med ét barn per item, navngivet efter elementtypen.
Coding-tilpasninger bliver også respekteret. En nestet enum CodingKeys: String, CodingKey mapper propertynavnene om i outputtet, så orderId kan komme ud som OrderId i XML:en uden at du rører structen. Nestede structs og enums foldes ud inline. Indsæt flere typer, og hver enkelt lander i outputtet med sin form intakt — konverteren følger samme overordnede designmål som Swift API Design Guidelines, så navne og casing forbliver forudsigelige.
Sådan bruger du det
Tre trin. Virker ens uanset om du indsætter en fem-linjers struct eller en hel model-fil.
Indsæt din Swift (eller prøv eksemplet)
Smid din Swift ind som den er i venstre editor. En struct, en enum med associated values, en udfyldt let-instans eller en fil med flere typer — det hele duer. Klik på Indlæs eksempel hvis du vil se et realistisk eksempel først.
Du behøver ikke fjerne import-statements, pille @propertyWrappers af eller rydde op i Swift-syntaksen. Lad koden stå som den ser ud i Xcode. Bare indsæt.
Tryk Konvertér
Klik på den grønne Konvertér-knap. Værktøjet læser Swift-koden, bevarer hver type og property, og bygger XML-en i ét hug. Imens kører en kort loading-indikator.
Kopiér XML-en
Højre panel fyldes med indrykket, velformet XML, som enhver standardkonform XML-parser (XMLParser, lxml, System.Xml, you name it) vil acceptere. Kopiér det direkte ind i din plist, SOAP-body eller testfixture.
Hvornår det faktisk redder dig
plist-generering til iOS / macOS
Tag en Swift-settings-struct og få et Info.plist-agtigt XML-dokument som du kan droppe direkte ind i Xcode — ingen håndtastede <code><key></key></code>-par, ingen whitespace-bugs. Passer godt med Apples <a href="https://developer.apple.com/documentation/foundation/propertylistserialization" target="_blank" rel="noopener">PropertyListSerialization</a>-API’er på decoding-siden.
SOAP-klienter på Apple-platforme
En Swift-request-type skal ud af appen som SOAP. Indsæt structen, smid XML-bodyen ind i SoapUI eller Postman, verificér kontrakten uden at skrive envelope i hånden.
Seeding af testfixtures
Lav en udfyldt <code>let order = Order(...)</code> fra en unit test om til en XML-seedfil til XCTest-integrationstests, mock-servere eller backend-systemer der stadig snakker XML.
Holde docs synkrone
Generer XML-eksempler til en README, en intern wiki eller XSD-baserede skema-docs direkte fra dine rigtige Swift-modeller, så dokumentationen aldrig driver væk fra koden.
Almindelige spørgsmål
Kan jeg indsætte flere structs ad gangen?
Ja — indsæt en hel fil. Hver top-level-struct eller -enum kommer igennem med nestede typer foldet ud og defaultværdier udfyldt. Ingenting bliver tabt i tavshed.
Respekterer den CodingKeys?
Ja. En nestet enum CodingKeys: String, CodingKey mapper propertynavnene om i XML-outputtet — case orderId = "OrderId" udsender <OrderId> i stedet for <orderId>. Properties der ikke står i CodingKeys, falder tilbage på deres Swift-navn. Det matcher hvordan Codable virker i praksis.
Hvordan håndteres Decimal, Date og Optional?
Decimal kommer ud som almindelig numerisk tekst. Date bliver en ISO-8601-streng. UUID bliver en standard 8-4-4-4-12-hex-streng. Optional<T> med nil bliver et tomt element i stedet for at forsvinde — så formen forbliver konsistent for forbrugere der validerer op mod et XSD.
Og enums med associated values og arrays?
Enums med associated values udsendes med et discriminator-attribut der navngiver caset, plus child-elementer til de associated values — nok til at round-trippe dem. Arrays bliver til et container-element med ét barn per item, navngivet efter elementtypen. Dictionary<K,V> bliver til en container af <Entry><Key/><Value/></Entry>.
Bliver min kode gemt?
Din kode sendes til backend til konverteringen og bliver ikke gemt — vi logger ikke payloaden. Som altid med online-værktøjer: hvis koden er virkelig følsom, så kig den igennem inden du indsætter den.
Hvad hvis Swift-koden har property wrappers, protokoller eller computed properties?
Property wrappers pakkes ud til den underliggende værdi i outputtet. Protokoller definerer form, ikke indhold, så de producerer ikke XML direkte — men typer der conformer, gør. Computed properties springes over fordi de er afledte, ikke state. Hvis koden har syntaksfejl, så fix de indlysende først — parseren er tolerant, men ikke synsk.
Andre værktøjer du måske får brug for
Swift til XML er kun ét stykke af puslespillet. De her passer godt sammen med det: