Formatti XML online
Incolli una lunga riga di XML, come un catalogo di libri, e ottenga un albero rientrato di due spazi per livello. Prima viene controllato tutto il documento, così un tag chiuso male viene segnalato invece di uscire formattato a metà. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Gli elementi annidati risultano chiari, gli attributi usano virgolette uniformi e gli spazi di presentazione irrilevanti vengono rimossi. Se le chiusure non corrispondono, un’entità non è valida, un attributo è malformato o manca un’unica radice, l’operazione restituisce un errore invece di produrre un risultato solo apparentemente corretto.
Trasformi XML compresso in una struttura facile da controllare
Le macchine possono elaborarlo, ma per una persona è difficile capire dove termina un record e ne inizia un altro. Incollando il sorgente, ogni livello strutturale riceve un rientro uniforme, così Lei può distinguere meglio genitori, figli, elementi adiacenti, attributi, commenti e istruzioni di elaborazione. Una stringa facoltativa consente di scegliere spazi o tabulazioni secondo le convenzioni del repository.
Gli elementi con testo restano compatti per evitare di inserire caratteri di impaginazione nel contenuto misto, mentre i nodi strutturali vengono disposti su righe separate. La formattazione non rinomina elementi, non riordina attributi, non inventa namespace e non corregge di nascosto markup difettoso.
La convalida si conclude prima della restituzione
Un rientro ordinato è utile soltanto se il documento sottostante è valido. Il parser controlla quindi l’intero input prima di restituire il risultato formattato. Ogni elemento aperto deve avere la chiusura corretta, il nome di un attributo può comparire una sola volta nella stessa tag, i valori tra virgolette devono terminare correttamente e il documento deve contenere esattamente una radice.
Commenti, sezioni CDATA, istruzioni di elaborazione, riferimenti numerici ai caratteri, le cinque entità XML predefinite e una dichiarazione del tipo di documento vengono riconosciuti e verificati nelle posizioni consentite. Le entità denominate sconosciute sono rifiutate, perché risolverle senza dichiarazione sarebbe ambiguo e potenzialmente pericoloso. Gli errori indicano una causa concisa, come una chiusura incompatibile o un commento incompleto.
Questa capacità non scarica schemi, risorse DTD o definizioni di namespace dalla rete. Verifica che l’XML sia ben formato, ma non certifica la conformità a uno specifico vocabolario aziendale o XSD.
Per un controllo veloce o un lavoro ripetuto
Poiché l’implementazione non usa rete, casualità, orologio o inferenza di modelli, input e rientri identici producono sempre lo stesso output. Questa stabilità riduce il rumore nel controllo versione. Consideri il risultato una rappresentazione normalizzata della struttura, non XML canonico per firme crittografiche.
Se occorrono conservazione esatta dei byte, convalida di schemi, espansione di entità esterne, firma o una norma specifica di canonicalizzazione, utilizzi una libreria XML sottoposta a verifica per quel flusso prima di controllare o firmare.
Casi d'uso
Rifiuti importazioni malformate
Controlli l’XML in ingresso al confine della pipeline e restituisca un errore utile per tag, entità o attributi non validi.
Domande frequenti
Lo strumento ripara XML malformato?
No. Restituisce un errore se il documento non è ben formato, evitando che una correzione accidentale nasconda il problema originale.
Posso scegliere tabulazioni o spazi?
Sì. Imposti il campo del rientro con un massimo di otto spazi o tabulazioni. Il valore predefinito è di due spazi.
La convalida usa XSD o DTD?
No. Viene verificata solo la buona formazione dell’XML; schemi e risorse DTD esterne non vengono caricati.
La formattazione cambia il contenuto testuale?
Gli elementi testuali o misti restano compatti per non aggiungere spazi. La grafia delle entità e le virgolette possono essere normalizzate senza cambiare i valori.
Perché il mio XML viene rifiutato?
Perché non è ben formato. I motivi tipici sono un tag di chiusura che non corrisponde, un attributo ripetuto nello stesso tag, virgolette o un commento non chiusi, più di un elemento radice o un'entità con nome sconosciuta. Il messaggio indica il tipo di problema.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/web/xml-format \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"xml":"<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"}'const res = await fetch("https://api.kit.forhosting.com/web/xml-format", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"xml": "<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/web/xml-format",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"xml": "<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/web/xml-format", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"xml":"<catalog><book id=\\"1\\"><title>Practical XML</title><available>true</available></book></catalog>"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"xml":"<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/web/xml-format", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"xml": "<catalog><book id=\"1\"><title>Practical XML</title><available>true</available></book></catalog>"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "web.xml_format",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
timeout_sec | 30 |
max_crawl_pages | 25 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Un XML leggibile rende molto più semplice esaminare configurazioni, feed, payload di integrazione e formati documentali. Questo strumento analizza l’XML fornito da Lei, verifica che la struttura sia ben formata e lo serializza di nuovo con rientri prevedibili.
Trasformi XML compresso in una struttura facile da controllare
Spesso l’XML arriva su un’unica riga da una risposta API, da un file di impostazioni esportato o da un messaggio copiato in un log.
Usi il browser per controlli rapidi e l’API per i flussi ripetibili
Per un payload occasionale, l’esecutore nel browser consente di formattare rapidamente l’XML senza installare strumenti. Per attività ricorrenti, l’API offre lo stesso algoritmo deterministico a test, pipeline di importazione, utilità di assistenza e integrazioni con editor per $0.002 per richiesta.
Casi di integrazione
Esamini un payload API
Espanda una risposta XML compatta in una gerarchia leggibile prima di analizzare valori, annidamento e attributi.
Normalizzi i fixture di test
Applichi un rientro stabile all’XML generato affinché revisioni e confronti mostrino chiaramente i cambiamenti strutturali.
Domande tecniche
Quanto costa formattare XML?
L’esecuzione nel browser è gratuita e ogni richiesta API costa $0.002.