Převod souboru INI do XML
Převeďte nastavení INI na použitelný formát XML a zároveň zkontrolujte syntaxi, kódování a omezení cílového schématu.
Převádějte soubory INI online
Pro převod INI do XML zatím vlastní online konvertor nemáme, ale soubory INI můžete online převést do těchto formátů:
Chcete převádět INI na XML?
Dejte nám vědět. Podle zájmu vybíráme, které převody přidáme jako další.
Jak převést soubor ini do formátu xml
- Ostatní konverze souborů
- Dosud nehodnoceno.
Program, utilita zařízení nebo systém pro správu konfigurace může vyžadovat XML, pokud jsou původní nastavení uložena ve formátu INI. Převod souboru umožní nastavení importovat, ověřit podle XML schématu nebo vyměňovat se softwarem, který nedokáže číst INI.
Co je formát INI
INI je konfigurační formát prostého textu založený na sekcích a dvojicích klíč–hodnota, například timeout=30 pod položkou [network]. Běžně se používá v aplikacích pro Windows, starším desktopovém softwaru, hrách, instalačních programech, vývojových nástrojích a utilitách zařízení od konkrétních výrobců.
INI nemá univerzální specifikaci. Jednotlivé programy se liší znaky pro komentáře, oddělovači, použitím uvozovek, interpolací, chováním při duplicitních klíčích, rozlišováním velkých a malých písmen, víceřádkovými hodnotami a podporou polí nebo vnořených dat. Soubor platný pro jednu aplikaci nemusí být platný pro jinou.
Co je formát XML
XML reprezentuje data pomocí vnořených elementů, atributů, textových hodnot, uzavíracích tagů a definovaných pravidel escapování. Může být doplněno jmennými prostory a externím schématem XSD pro ověření struktury a datových typů; XML se neověřuje automaticky samo.
XML je vhodné pro aplikace, které vyžadují definovanou hierarchii, jmenné prostory, ověření podle schématu nebo standardizovanou výměnu dat. Obvykle je podrobnější než INI, takže převod zpravidla zvětší velikost souboru, místo aby ji zmenšil.
Jak převést INI na XML
Pro místní převod poskytují standardní knihovny Pythonu configparser a xml.etree.ElementTree opakovaně použitelnou možnost bez nahrávání přihlašovacích údajů, klíčů API, názvů hostitelů nebo nastavení zařízení. Tento skript vytváří obecnou reprezentaci XML; neodvozuje schéma XML vyžadované konkrétní aplikací.
- Nainstalujte Python 3 z
python.org, pokud ještě není k dispozici. - Uložte následující kód jako
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 contains values written in this section, excluding DEFAULT values.
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)
- Spusťte jej z terminálu:
python ini_to_xml.py settings.ini settings.xml
Pro vstup obsahující [network] a timeout=30 bude výstup obsahovat:
<configuration>
<section name="network">
<entry name="timeout">30</entry>
</section>
</configuration>
Obecná struktura používá názvy sekcí a klíčů jako hodnoty atributů, takže lze reprezentovat i názvy, které nejsou platnými názvy XML elementů. Pokud přijímající aplikace vyžaduje konkrétní kořenový element, podřízené elementy, atributy, jmenný prostor nebo schéma, upravte skript tak, aby místo toho vytvářel požadovanou strukturu, a tento výstup neimportujte beze změn.
Desktopové a online možnosti
Pro příležitostný ruční převod použijte Notepad++ nebo jiný editor prostého textu a namapujte každou sekci a klíč INI do struktury XML vyžadované cílovým programem. Oxygen XML Editor a podobné desktopové XML editory mohou výsledné XML formátovat, upravovat a ověřovat, neposkytují však univerzální import INI, protože INI nemá konzistentní datový model.
Online převodník je vhodný pouze pro jednoduchý soubor, který neobsahuje citlivá data. Používejte pouze renomovanou službu, pokud její aktuální seznam formátů výslovně přijímá vstup INI a vytváří výstup XML; obecné převodníky dokumentů mohou INI odmítnout nebo s ním zacházet jako s nestrukturovaným textem. Nenahrávejte hesla, soukromé klíče, přihlašovací údaje API, proprietární nastavení ani konfiguraci zařízení. Stažené XML před použitím zkontrolujte lokálně.
Omezení kvality a kompatibility
Skript zachovává názvy sekcí a analyzované hodnoty, nezachovává však komentáře, původní mezery, formátování ani syntaxi specifickou pro danou aplikaci. Rovněž nereprodukuje chování interpolace, rozšiřování proměnných prostředí, podmíněných nastavení ani vlastních konvencí pro pole a vnořené hodnoty.
strict=False umožňuje při analýze duplicitní klíče, ale zachová se pouze poslední hodnota. Pokud mají duplicitní klíče vyvolat chybu, tuto volbu odeberte. interpolation=None kopíruje sekvence procent doslovně, místo aby s nimi zacházelo jako s odkazy. Výchozí parser také očekává podporované oddělovače a odmítá některé dialekty INI, včetně samostatných klíčů, pokud není nakonfigurováno allow_no_value=True.
Příklad načítá UTF-8 a zapisuje UTF-8 s deklarací XML. Před převodem zjistěte původní kódování znaků používané programem; starší software pro Windows může používat znakovou stránku, například Windows-1252. Neplatné řídicí znaky XML nelze zapsat a hodnoty se znaky citlivými z hlediska XML jsou pomocí ElementTree escapovány.
Výsledek ověřte importérem cílové aplikace nebo jejím XSD a poté nastavení otestujte v neprodukčním prostředí. Syntakticky platný soubor XML může být stále nekompatibilní s požadovanými názvy, typy, výchozími hodnotami, pořadím nebo jmenným prostorem přijímajícího programu.
INI vs XML: srovnání formátů
Jak si formáty INI a XML stojí v nejdůležitějších vlastnostech pro tento převod.
| Vlastnost | .INI INI file | .XML Extensible Markup Language |
|---|---|---|
| Otevřený standard | — | Ano |
| Komprese | Bez komprese | Bez komprese |
| Typická velikost souboru | Velmi malé | Malé |
| Otevírá se ve webovém prohlížeči | Ne | Ano, nativně |
| Další úpravy | Snadné | Snadné |
| Podpora metadat | Základní | Základní |
| Čitelný jako prostý text | Ano | Ano |
| Nejvhodnější pro | Výměna dat | Výměna dat |
| Zavedeno | — | 1998 |
| Vývojář | — | W3C |
| MIME typ | — | application/xml |
Informace o příponách a typech souborů poskytuje File-Extensions.org
Navrhovaný software pro převod ini do xml
Podobné .ini konverze
Reverzní konverze
Konverze do .xml
z jiných formátů
- txt do xml
- enw do xml
- text do xml
- xfdf do xml
- cdfx do xml
- dwg do xml
- iam do xml
- excel do xml
- roz do xml
- stp do xml
- 123 do xml
- abs do xml
- accdt do xml
- acp do xml
- adp do xml
- asc do xml
- ascii do xml
- asm do xml
- ass do xml
- atomsvc do xml
- bgl do xml
- cap do xml
- catpart do xml
- catproduct do xml
- cgr do xml
- crtx do xml
- crypt12 do xml
- dex do xml
- dxi do xml
- ecsv do xml
- edi do xml
- enc do xml
- ets do xml
- exp do xml
- fm do xml
- fods do xml
- fp do xml
- fp4 do xml
- fr3 do xml
- iges do xml
- ipd do xml
- ipt do xml
- iqy do xml
- jpeg do xml
- jpg do xml
- lin do xml
- ll do xml
- lng do xml
- lst do xml
- m3u8 do xml
- mar do xml
- mdt do xml
- mdwn do xml
- model do xml
- mst do xml
- mu3 do xml
- myr do xml
- nbib do xml
- nfo do xml
- odc do xml
- out do xml
- ove do xml
- pkt do xml
- png do xml
- prt do xml
- ps do xml
- qrp do xml
- ris do xml
- rpt do xml
- s2db do xml
- sba do xml
- sdf do xml
- sl2 do xml
- sl3 do xml
- sldasm do xml
- sldprt do xml
- sqlite2 do xml
- srt do xml
- stm do xml
- sxc do xml
- tab do xml
- tdl do xml
- thmx do xml
- tif do xml
- tiff do xml
- trc do xml
- usr do xml
- vda do xml
- wk1 do xml
- wk3 do xml
- wks do xml
- x_t do xml
- xdp do xml
- xl do xml
- xlmx do xml
- xlt do xml
- xltm do xml
- xmls do xml
- xmlx do xml
- xpr do xml