Convertir INI en XML

Vous pouvez convertir INI en XML gratuitement et sans compte : déposez le fichier ci-dessus et, une ou deux secondes plus tard, le résultat est prêt à télécharger. La conversion se fait dans votre propre navigateur : le fichier n’est donc jamais téléversé. Cela marche sous Windows, macOS et Linux comme sur iPhone et Android, et continue de marcher si vous coupez le réseau.

  • Où cela s’exécute Dans votre navigateur. Le fichier n’est pas téléversé.
  • Sans perte Rien ne se perd. XML contient exactement ce que contenait INI.
  • Limite de taille Jusqu’à 100 Mo par fichier, gratuitement et sans compte.

Jusqu’à 100 fichiers à la fois. Les formats mélangés ne posent pas de problème.

À quoi ressemble un INI une fois passé en XML

La correspondance est assez directe pour être prédite. Un en-tête de section devient un élément, chaque clé située en dessous devient un enfant de cet élément, et la valeur devient le texte de l’enfant. Un fichier INI contenant [db] avec host et port en dessous ressort en un élément db contenant un élément host et un élément port, indentés de deux espaces par niveau.

Cette prévisibilité est la raison pour laquelle cette paire mérite un outil plutôt qu’un script. Il n’y a aucune ambiguïté à lever, parce qu’un INI n’offre au convertisseur presque rien à interpréter : un niveau de regroupement, une clé, une valeur par ligne. Tout l’intéressant se passe aux bords, et le reste de cette page parle de ces bords.

Selon les cas, l’INI devient l’élément racine ou s’en voit attribuer un

XML exige exactement un élément extérieur et un INI n’a pas la notion d’un tel élément. Le convertisseur tranche en regardant ce qu’il a lu : si le fichier contenait une seule section et rien d’autre, cette section devient la racine, de sorte qu’un fichier à une seule section nommée [settings] produit un document dont la balise racine est settings. Tout le reste — deux sections, ou des clés écrites au-dessus du premier en-tête de section — est enveloppé dans un élément racine générique.

Cela mérite d’être su avant d’écrire un XSD ou un XPath contre le résultat. Ajouter une seconde section au fichier INI source change silencieusement l’élément racine de la sortie de settings à root, et toute expression de chemin écrite contre la première version cesse de correspondre. Si la forme du document compte en aval, décidez vous-même de l’enveloppe et gardez-la stable plutôt que de laisser le nombre de sections en décider.

Chaque valeur INI arrive comme texte, typée au petit bonheur

INI n’a aucun système de types : tout ce qui se trouve à droite du signe égal est une suite de caractères. Le lecteur devine quand même, en transformant true et false en booléens et tout ce qui s’analyse comme un nombre en nombre, puis l’écriture XML réimprime ce qu’elle a reçu en texte. Pour la plupart des clés, l’aller-retour est invisible.

Pour certaines, il ne l’est pas. Une valeur écrite 007 est lue comme le nombre 7 et réécrite comme 7. Une clé de version écrite 1.0 devient 1. Un masque hexadécimal écrit 0x1F ressort comme 31, et un mode de fichier Unix écrit 0755 ressort comme 755, ce qui n’est pas le même mode. Tout ce qui porte une unité survit intact, donc 128M reste 128M, et il en va de même pour des adresses pointées comme 127.0.0.1 et des horaires comme 08:00, parce qu’aucun ne s’analyse comme un seul nombre.

Les clés qui ne sont pas des noms d’élément XML valides

XML est bien plus strict que INI sur les noms. Une clé INI peut contenir des espaces, des barres obliques, des deux-points et des crochets ; un nom d’élément ne peut contenir que des lettres, des chiffres, des soulignés, des traits d’union, des points et guère plus, et il ne doit pas commencer par un chiffre. L’écriture substitue donc un souligné à chaque caractère qu’elle ne peut pas employer, et préfixe d’un souligné tout nom qui commence par autre chose qu’une lettre ou un souligné.

La substitution n’est pas réversible, si bien que deux clés qui ne diffèrent que par leur ponctuation entrent en collision sur le même nom d’élément — « log level » et « log-level » ne se télescopent pas, parce que le trait d’union est autorisé, mais « log level » et « log/level » deviennent tous deux log_level. Si votre fichier INI comporte des clés de ce genre, renommez-les dans la source avant de convertir plutôt que d’essayer de démêler ensuite quel élément venait de quelle ligne.

Les noms de section pointés, et pourquoi [tool.black] reste une seule balise

Un en-tête de section écrit [database.pool] ressemble à de l’imbrication, et en TOML il s’imbriquerait. Ici, il ne le fait pas : le lecteur prend tout ce qui se trouve entre les crochets comme un seul nom de section, de sorte que la sortie contient un élément unique nommé database.pool avec les clés à l’intérieur. Les points sont autorisés dans les noms d’élément XML, le document est donc valide ; il est seulement plat là où vous attendiez peut-être de la profondeur.

Si le schéma cible veut un vrai emboîtement, cette structure doit être créée plutôt que convertie. La séquence honnête consiste à convertir d’abord, puis à remodeler le XML résultant en XSLT ou à la main, parce qu’un convertisseur qui devinerait l’imbrication à partir de la ponctuation se tromperait sur chaque fichier INI où un point fait partie d’un nom plutôt que d’être un séparateur — et les fichiers de configuration PHP, où des clés comme date.timezone sont partout, sont exactement ce cas.

Ce qu’un en-tête de section INI répété vous coûte en silence

INI n’a pas de norme, seulement des conventions, et l’un des points sur lesquels les implémentations divergent est la signification d’un en-tête de section répété. Certaines fusionnent les deux blocs. Ce lecteur ne le fait pas : il crée une section vide neuve à chaque en-tête rencontré, si bien qu’un fichier où [logging] apparaît deux fois ne garde que les clés de la seconde occurrence et perd entièrement le premier bloc, sans erreur.

Les en-têtes répétés sont rares dans les fichiers écrits à la main et fréquents dans les fichiers assemblés par concaténation — une configuration de base à laquelle on a ajouté en queue un surcouche d’environnement, qui est un véritable motif de déploiement. Cherchez dans la source les en-têtes en doublon avant de convertir, parce que la défaillance est silencieuse et que la sortie est un document XML parfaitement bien formé auquel manquent simplement des réglages.

Les commentaires du fichier INI sont la part que vous perdez

Les deux formats acceptent des commentaires. INI les marque d’un point-virgule ou d’un dièse, XML d’un bloc entre chevrons, et cette conversion n’en transporte aucun : les lignes de commentaire sont ignorées à la lecture et ne réapparaissent jamais. Le registre reconnaît aux deux formats la capacité d’en porter, ce qui fait de la perte un artefact du pipeline plutôt qu’une limitation de la cible.

Sur un fichier de configuration, c’est plus important qu’il n’y paraît. La ligne située au-dessus d’un timeout et expliquant qu’il a été porté à 90 secondes à cause d’un rapport lent est en général le seul endroit où cette décision est documentée. Copiez l’original commenté dans le gestionnaire de versions avant de convertir, et rattachez les explications au XML ensuite ; aucune conversion automatisée de ce type ne peut le faire à votre place.

Ce que XML vous apporte et que l’INI ne pouvait pas

La raison de cette migration n’est presque jamais la syntaxe. XML 1.0 est une recommandation du W3C depuis 1998, et autour de lui se trouve la machinerie qui a toujours manqué à INI : des schémas XSD qui rejettent une configuration à la moindre clé mal orthographiée avant que l’application ne démarre, XPath pour extraire une seule valeur d’un gros document, XSLT pour le remodeler, et les signatures numériques XML pour affirmer qu’un fichier de configuration n’a pas été modifié.

Rien de tout cela n’arrive avec la conversion. La sortie est un document bien formé, sans schéma attaché et sans espace de noms déclaré, et écrire le schéma est le véritable travail — la conversion ne fait que vous donner un document de départ sur lequel l’écrire. Si vous n’avez pas l’intention de valider, signer ou transformer le résultat, la migration n’achète que de la verbosité et rien d’autre.

Quand laisser l’INI là où il est

Si l’application qui lit le fichier est celle qui l’a écrit, et qu’aucune chaîne en aval n’a besoin d’un schéma, convertir est un coût sans retour. Un fichier INI est éditable par quiconque sait ouvrir le Bloc-notes, et c’est une véritable propriété opérationnelle quand la personne qui modifie un réglage à deux heures du matin n’est pas une développeuse ou un développeur.

La conversion est aussi le mauvais outil si ce dont vous avez réellement besoin est de deux ou trois valeurs extraites du fichier plutôt que du fichier entier. Lisez-les directement. Ce convertisseur existe pour le cas où le fichier INI est la configuration et où la configuration migre, pas pour extraire un fragment.

Comment convertir INI en XML

  1. Déposez votre fichier INI sur cette page, ou cliquez pour en choisir un.
  2. Choisissez XML comme destination. La conversion se fait dans votre navigateur et le fichier n’est pas téléversé.
  3. Téléchargez le fichier XML terminé.

INI et XML : ce qui change

INI face à XML
INIXML
Nom completConfiguration INIExtensible Markup Language
Extension de fichier.ini, .cfg, .conf.xml
Type de médiatext/plainapplication/xml
Première publication19851998
Publié parW3C
SpécificationXML 1.0
LicenceStandard ouvertStandard ouvert
Situation actuelleAncien, encore lu partoutActuel
S’ouvre dans un navigateurAucun navigateurTous les navigateurs
Envisagé à la placeTOML, YAMLJSON, YAML

Ce qui est conservé

Les commentaires suivent. INI et XML ont tous deux une syntaxe de commentaire : les notes laissées à la personne suivante ne sont pas jetées en silence.

Ouvrir le résultat

XML s’ouvre dans tous les navigateurs actuels. INI va encore moins loin. Si le fichier part sur une page web ou dans un formulaire, c’est souvent toute la raison de la conversion.

INI date de 1985 et n’est guère plus utilisé. XML est ce qu’écrivent les logiciels actuels : convertir, c’est aussi rester lisible.

Visual Studio Code lit aussi bien INI que XML : vous pouvez comparer le résultat à l’original sans second logiciel.

À quoi sert chaque format

Les deux visent des usages différents : INI la retouche, XML l’échange entre programmes. Cela mérite d’être pesé avant, car ce qui justifie l’un est souvent ce qui rend l’autre malcommode.

XML vient de W3C et date de 1998, décrit par XML 1.0. Visual Studio Code et oXygen XML Editor le lisent.

De INI à XML : questions fréquentes

Mon fichier INI est-il téléversé quelque part ?

Non. Cette conversion se fait entièrement dans votre navigateur : le fichier ne quitte donc pas votre appareil. Vous pouvez le vérifier vous-même — ouvrez l’onglet réseau des outils de développement et convertissez quelque chose. Vous verrez la page elle-même et les requêtes de statistiques et de publicité qui financent ce service, et pas une seule qui transporte votre fichier.

Convertir INI en XML est-il gratuit ?

Oui. Pas de compte, pas de filigrane et pas de quota journalier à dépenser : cela tourne sur votre propre machine, vous pouvez donc revenir autant de fois que vous voulez. Le navigateur traite des fichiers jusqu’à 100 Mo, 100 à la fois.

Y a-t-il une perte de qualité en convertissant INI en XML ?

Non. XML enregistre le même contenu sans rien jeter : le résultat est identique en qualité à l’original.

Dois-je installer quelque chose pour ouvrir un fichier XML ?

Pas pour la conversion : elle se fait dans le navigateur que vous avez déjà ouvert. Pour ouvrir le résultat, il vous faut ensuite le logiciel avec lequel votre appareil affiche habituellement Extensible Markup Language.

En savoir plus sur ces formats