Converti INI in XML
Convertire le impostazioni INI in XML utilizzabile, verificando la sintassi, l'encoding e i limiti dello schema di destinazione.
Converti i file INI online
Non abbiamo ancora un convertitore online dedicato per INI in XML, ma puoi convertire i file INI online in questi formati:
Vuoi convertire INI in XML?
Faccelo sapere. Scegliamo le prossime conversioni da aggiungere in base all'interesse.
Come convertire ini in xml file
- Altro
- Ancora nessuna valutazione.
Un programma, un'utilità del dispositivo o un sistema di gestione della configurazione può richiedere XML quando le impostazioni originali sono archiviate in formato INI. La conversione consente di importare le impostazioni, convalidarle rispetto a uno schema XML o scambiarle con software che non è in grado di leggere INI.
Cos'è il formato INI
INI è un formato di configurazione in testo semplice costituito da sezioni e coppie chiave-valore, come timeout=30 nella sezione [network]. È comune nelle applicazioni Windows, nei software desktop legacy, nei giochi, nei programmi di installazione, negli strumenti di sviluppo e nelle utilità per dispositivi specifiche dei fornitori.
INI non dispone di una specifica universale. I programmi differiscono per caratteri dei commenti, delimitatori, virgolette, interpolazione, comportamento in presenza di chiavi duplicate, distinzione tra maiuscole e minuscole, valori multilinea e supporto per array o dati nidificati. Un file valido per un'applicazione potrebbe non essere valido per un'altra.
Cos'è il formato XML
XML rappresenta i dati con elementi nidificati, attributi, valori testuali, tag di chiusura e regole di escaping definite. Può essere accompagnato da namespace e da uno schema XSD esterno per la convalida della struttura e dei tipi di dati; XML non esegue automaticamente la convalida di se stesso.
XML è adatto alle applicazioni che richiedono una gerarchia definita, namespace, convalida tramite schema o uno scambio di dati standardizzato. Di solito è più prolisso di INI, quindi la conversione normalmente aumenta le dimensioni del file anziché ridurle.
Come convertire INI in XML
Per una conversione locale, configparser e xml.etree.ElementTree della libreria standard di Python offrono un'opzione ripetibile senza caricare credenziali, chiavi API, nomi host o impostazioni dei dispositivi. Questo script crea una rappresentazione XML generica; non individua automaticamente lo schema XML richiesto da una particolare applicazione.
- Installa Python 3 da
python.orgse non è già disponibile. - Salva il codice seguente come
ini_to_xml.py:
import configparser
import sys
import xml.etree.ElementTree as ET
source, target = sys.argv[1:3]
config = configparser.ConfigParser(
interpolation=None,
strict=False,
empty_lines_in_values=False
)
config.optionxform = str
with open(source, encoding="utf-8") as file:
config.read_file(file)
root = ET.Element("configuration")
def add_section(parent, name, values):
section = ET.SubElement(parent, "section", {"name": name})
for key, value in values.items():
entry = ET.SubElement(section, "entry", {"name": key})
entry.text = value
if config.defaults():
add_section(root, "DEFAULT", config.defaults())
for section_name in config.sections():
# _sections contiene i valori scritti in questa sezione, esclusi i valori DEFAULT.
values = {
key: value
for key, value in config._sections[section_name].items()
if key != "__name__"
}
add_section(root, section_name, values)
ET.indent(root, space=" ")
ET.ElementTree(root).write(target, encoding="utf-8", xml_declaration=True)
- Eseguilo da un terminale:
python ini_to_xml.py settings.ini settings.xml
Per un input contenente [network] e timeout=30, l'output include:
<configuration>
<section name="network">
<entry name="timeout">30</entry>
</section>
</configuration>
La struttura generica utilizza i nomi delle sezioni e delle chiavi come valori degli attributi, quindi è possibile rappresentare anche nomi che non sono nomi validi per elementi XML. Se l'applicazione ricevente richiede uno specifico elemento radice, elementi figlio, attributi, namespace o schema, modifica lo script per generare tale struttura invece di importare questo output senza modificarlo.
Opzioni desktop e online
Per una conversione manuale occasionale, usa Notepad++ o un altro editor di testo semplice per associare ogni sezione e chiave INI alla struttura XML richiesta dal programma di destinazione. Oxygen XML Editor e altri editor XML desktop simili possono formattare, modificare e convalidare l'XML risultante, ma non offrono un'importazione INI universale perché INI non dispone di un modello di dati coerente.
Un convertitore online è adatto solo per un file semplice e non sensibile. Usa un servizio affidabile soltanto quando il suo elenco dei formati aggiornato accetta esplicitamente input INI e produce output XML; i convertitori generici di documenti potrebbero rifiutare INI o trattarlo come testo non strutturato. Non caricare password, chiavi private, credenziali API, impostazioni proprietarie o configurazioni dei dispositivi. L'XML scaricato deve essere controllato localmente prima dell'uso.
Limiti di qualità e compatibilità
Lo script conserva i nomi delle sezioni e i valori analizzati, ma non conserva i commenti, gli spazi originali, la formattazione o la sintassi specifica dell'applicazione. Inoltre, non riproduce il comportamento dell'interpolazione, dell'espansione delle variabili d'ambiente, delle impostazioni condizionali o delle convenzioni personalizzate per array e valori nidificati.
strict=False consente la presenza di chiavi duplicate durante l'analisi, ma viene conservato solo l'ultimo valore. Rimuovi questa opzione quando le chiavi duplicate devono causare un errore. interpolation=None copia letteralmente le sequenze percentuali invece di trattarle come riferimenti. Il parser predefinito richiede inoltre delimitatori supportati e rifiuta alcuni dialetti INI, incluse le chiavi prive di valore, a meno che non venga configurato allow_no_value=True.
L'esempio legge UTF-8 e scrive UTF-8 con una dichiarazione XML. Individua la codifica dei caratteri utilizzata dal programma originale prima della conversione; i software Windows meno recenti potrebbero utilizzare una tabella codici come Windows-1252. I caratteri di controllo XML non validi non possono essere scritti e i valori contenenti caratteri sensibili per XML vengono sottoposti a escaping da ElementTree.
Convalida il risultato con l'importatore dell'applicazione di destinazione o con il relativo XSD, quindi testa le impostazioni in un ambiente non di produzione. Un file XML sintatticamente valido può comunque essere incompatibile con i nomi, i tipi, i valori predefiniti, l'ordine o il namespace richiesti dal programma ricevente.
Confronto formato: INI vs XML
Come i formati INI e XML si confrontano sulle proprietà più importanti per questa conversione.
| Proprietà | .INI INI file | .XML Extensible Markup Language |
|---|---|---|
| Standard aperto | — | Sì |
| Compressione | Non compresso | Non compresso |
| Dimensione tipica del file | Molto piccolo | Piccolo |
| Si apre in un browser web | No | Sì, nativamente |
| Modifica successiva | Facile | Facile |
| Supporto metadata | Base | Base |
| Leggibile come testo semplice | Sì | Sì |
| Ideale per | Scambio dati | Scambio dati |
| Introdotto | — | 1998 |
| Sviluppatore | — | W3C |
| Tipo MIME | — | application/xml |
Le informazioni su estensioni e tipi di file sono fornite da File-Extensions.org
Software e collegamenti suggeriti: convertitori da ini a xml
Altre conversioni di file .ini
Conversione inversa
Conversione in .xml
da altri formati
- xfdf in xml
- sldasm in xml
- xlmx in xml
- enw in xml
- cdfx in xml
- dwg in xml
- roz in xml
- pkt in xml
- rpt in xml
- jpeg in xml
- 123 in xml
- abs in xml
- accdt in xml
- acp in xml
- adp in xml
- ascii in xml
- asm in xml
- ass in xml
- atomsvc in xml
- bgl in xml
- cap in xml
- catpart in xml
- catproduct in xml
- cgr in xml
- crtx in xml
- crypt12 in xml
- dex in xml
- dxi in xml
- ecsv in xml
- edi in xml
- enc in xml
- ets in xml
- excel in xml
- exp in xml
- fm in xml
- fods in xml
- fp in xml
- fp4 in xml
- fr3 in xml
- iam in xml
- iges in xml
- ipd in xml
- ipt in xml
- iqy in xml
- jpg in xml
- lin in xml
- ll in xml
- lng in xml
- m3u8 in xml
- mar in xml
- mdt in xml
- mdwn in xml
- model in xml
- mst in xml
- mu3 in xml
- myr in xml
- nbib in xml
- nfo in xml
- odc in xml
- ove in xml
- png in xml
- prt in xml
- ps in xml
- qrp in xml
- ris in xml
- s2db in xml
- sba in xml
- sdf in xml
- sl2 in xml
- sl3 in xml
- sldprt in xml
- sqlite2 in xml
- srt in xml
- stm in xml
- stp in xml
- sxc in xml
- tdl in xml
- thmx in xml
- tif in xml
- tiff in xml
- trc in xml
- usr in xml
- vda in xml
- wk1 in xml
- wk3 in xml
- wks in xml
- x_t in xml
- xdp in xml
- xl in xml
- xlt in xml
- xltm in xml
- xmls in xml
- xmlx in xml
- xpr in xml