Aller au contenu

Convertir INI en XML

Convertir les paramètres INI en XML exploitable tout en vérifiant la syntaxe, l’encodage et les limites du schéma cible.

Convertir des fichiers INI en ligne

Nous n’avons pas encore de convertisseur en ligne dédié pour INI vers XML, mais vous pouvez convertir des fichiers INI en ligne vers ces formats :

Vous voulez convertir INI en XML ?

Dites-le-nous. Nous choisissons les prochaines conversions à ajouter selon l'intérêt.

Comment convertir ini en fichier xml

  • Autre
  • Aucune note pour l'instant.

Un programme, un utilitaire de périphérique ou un système de gestion de configuration peut nécessiter XML lorsque les paramètres d’origine sont stockés au format INI. La conversion permet d’importer les paramètres, de les valider par rapport à un schéma XML ou de les échanger avec des logiciels qui ne peuvent pas lire INI.

Ce qu’est le format INI

INI est un format de configuration en texte brut constitué de sections et de paires clé-valeur, telles que timeout=30 sous [network]. Il est courant dans les applications Windows, les logiciels de bureau anciens, les jeux, les programmes d’installation, les outils de développement et les utilitaires de périphériques propres à certains fournisseurs.

INI ne possède aucune spécification universelle. Les programmes diffèrent au niveau de leurs caractères de commentaire, délimiteurs, guillemets, interpolations, comportement concernant les clés en double, sensibilité à la casse, valeurs multilignes et prise en charge des tableaux ou des données imbriquées. Un fichier valide pour une application peut ne pas l’être pour une autre.

Ce qu’est le format XML

XML représente les données avec des éléments imbriqués, des attributs, des valeurs textuelles, des balises fermantes et des règles d’échappement définies. Il peut être accompagné d’espaces de noms et d’un schéma XSD externe pour la validation de la structure et des types de données ; XML ne se valide pas automatiquement lui-même.

XML convient aux applications qui nécessitent une hiérarchie définie, des espaces de noms, une validation par schéma ou un échange de données standardisé. Il est généralement plus verbeux que INI ; la conversion augmente donc normalement la taille du fichier au lieu de la réduire.

Comment convertir INI en XML

Pour une conversion locale, la bibliothèque standard Python configparser et xml.etree.ElementTree offrent une solution reproductible sans téléverser d’informations d’identification, de clés API, de noms d’hôte ou de paramètres de périphérique. Ce script crée une représentation XML générale ; il ne devine pas le schéma XML requis par une application particulière.

  1. Installez Python 3 depuis python.org s’il n’est pas déjà disponible.
  2. Enregistrez le code suivant sous le nom 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)
  1. Exécutez-le depuis un terminal :
python ini_to_xml.py settings.ini settings.xml

Pour une entrée contenant [network] et timeout=30, la sortie inclut :

<configuration>
  <section name="network">
    <entry name="timeout">30</entry>
  </section>
</configuration>

La structure générique utilise les noms des sections et des clés comme valeurs d’attributs ; les noms qui ne sont pas des noms d’éléments XML valides peuvent donc tout de même être représentés. Si l’application destinataire nécessite un élément racine, des éléments enfants, des attributs, un espace de noms ou un schéma spécifique, modifiez le script pour générer cette structure au lieu d’importer cette sortie telle quelle.

Options de bureau et en ligne

Pour une conversion manuelle occasionnelle, utilisez Notepad++ ou un autre éditeur de texte brut afin de faire correspondre chaque section et chaque clé INI à la structure XML requise par le programme cible. Oxygen XML Editor et les éditeurs XML de bureau similaires peuvent mettre en forme, modifier et valider le XML obtenu, mais ils ne proposent pas d’importation INI universelle, car INI ne possède aucun modèle de données cohérent.

Un convertisseur en ligne convient uniquement à un fichier simple et non sensible. Utilisez un service réputé seulement lorsque sa liste actuelle de formats accepte explicitement les entrées INI et produit une sortie XML ; les convertisseurs de documents génériques peuvent refuser INI ou le traiter comme du texte non structuré. Ne téléversez pas de mots de passe, de clés privées, d’informations d’identification API, de paramètres propriétaires ou de configuration de périphérique. Le XML téléchargé doit être vérifié localement avant utilisation.

Limites de qualité et de compatibilité

Le script conserve les noms des sections et les valeurs analysées, mais il ne conserve pas les commentaires, les espaces d’origine, la mise en forme ou la syntaxe propre à l’application. Il ne reproduit pas non plus le comportement de l’interpolation, de l’expansion des variables d’environnement, des paramètres conditionnels ou des conventions personnalisées pour les tableaux et les valeurs imbriquées.

strict=False autorise les clés en double lors de l’analyse, mais seule la dernière valeur est conservée. Supprimez cette option lorsque les clés en double doivent provoquer une erreur. interpolation=None copie littéralement les séquences de pourcentage au lieu de les traiter comme des références. L’analyseur par défaut attend également des délimiteurs pris en charge et rejette certains dialectes INI, notamment les clés seules, sauf si allow_no_value=True est configuré.

L’exemple lit du UTF-8 et écrit du UTF-8 avec une déclaration XML. Identifiez l’encodage de caractères du programme d’origine avant la conversion ; les anciens logiciels Windows peuvent utiliser une page de codes telle que Windows-1252. Les caractères de contrôle XML non valides ne peuvent pas être écrits, et les valeurs contenant des caractères sensibles pour XML sont échappées par ElementTree.

Validez le résultat avec l’importateur de l’application cible ou son XSD, puis testez les paramètres dans un environnement hors production. Un fichier XML syntaxiquement valide peut tout de même être incompatible avec les noms, types, valeurs par défaut, ordre ou espace de noms requis par le programme destinataire.

Comparaison du format INI vs XML

Comparaison entre les formats INI et XML sur les propriétés les plus importantes pour cette conversion.

Comparaison des formats de fichier INI et XML
Propriété .INI INI file .XML Extensible Markup Language
Norme ouverte — Oui
Compression Non compressé Non compressé
Taille de fichier typique Très petit Petit
S’ouvre dans un navigateur web Non Oui, nativement
Modification ultérieure Facile Facile
Support des métadonnées Basique Basique
Lisible en texte brut Oui Oui
Idéal pour Échange de données Échange de données
Date d’introduction — 1998
Développeur — W3C
Type MIME — application/xml

Les informations sur les extensions et les types de fichiers sont fournies par File-Extensions.org

Déjà téléchargé

Ce fichier a déjà été téléchargé. Pour protéger votre vie privée, nous l’avons supprimé de notre serveur juste après le téléchargement, il ne peut donc pas être téléchargé à nouveau. Pour l’obtenir encore une fois, convertissez de nouveau le fichier.