Convertir XML en Excel
Transformez un flux XML ou un export système en feuille de calcul. L’élément d’enregistrement répété est détecté pour vous, et les attributs deviennent leurs propres colonnes.
Déposez vos fichiers ici
.xml, .rss, .xhtml, .txt · jusqu’à 300 Mo
Plus de réglagesMoins de réglages
Comment convertir en Excel
- 1
Déposez un fichier XML
Les flux, catalogues et exports systèmes sont tous lus localement. RSS, XML simple et XHTML sont acceptés.
- 2
Confirmez l’élément d’enregistrement détecté
Le chemin le plus répété devient la ligne. Remplacez-le si votre fichier imbrique les enregistrements d’une façon inhabituelle.
- 3
Convertissez et téléchargez le XLSX
Vous obtenez une ligne par enregistrement avec un en-tête figé, prête à filtrer et trier.
Trouver ce qui compte comme ligne
XML ne connaît pas la notion de table, donc la première vraie question est : quel élément représente un enregistrement. L’arbre du document est parcouru et, pour chaque nœud, le nombre d’enfants portant le même nom est compté. Le chemin avec le plus de répétitions est choisi, et en cas d’égalité le chemin le plus profond l’emporte, car plus profond veut dire plus spécifique : « rss.channel.item » est une réponse plus utile que « rss.channel ». Cette heuristique fonctionne presque toujours pour les flux et les catalogues, mais cela reste une heuristique. C’est pour cela que le chemin est un champ modifiable et non une décision cachée. Un export 1C où « Document » et « TableRow » se répètent tous les deux est exactement le cas où vous seul savez lequel vous aviez en tête.
Attributs, espaces de noms et imbrication
Un attribut porte des données comme un élément, donc id="7" devient une colonne nommée @id et un attribut imbriqué currency="EUR" devient sum.@currency. Vous pouvez changer le préfixe ou ignorer les attributs. Les préfixes d’espace de noms sont supprimés par défaut pour que dc:title arrive dans une colonne appelée title, ce que presque tout le monde attend en ouvrant la feuille ; désactivez cette option pour conserver le nom préfixé. Les éléments imbriqués sont aplanis en colonnes nommées par points jusqu’à la profondeur autorisée. Tout ce qui va au-delà est stocké en JSON compact dans une seule cellule, au lieu de faire exploser la feuille en largeur.
Les déclarations d’entités sont refusées, jamais développées
Un fichier XML peut déclarer ses propres entités dans un DOCTYPE, et les développer est la manière dont l’attaque « billion laughs » épuise la mémoire et dont XXE lit des fichiers sur un serveur. Il n’existe pas de façon sûre de développer une entité non fiable et aucune bonne raison de le faire pour une conversion vers une feuille de calcul. Un document contenant une déclaration ENTITY est donc rejeté avant même le début de l’analyse, avec un message qui l’explique clairement. Retirez le DOCTYPE et le reste du fichier se convertit normalement.
Analyse ici, pas sur un serveur
Le décodage, la validation et la conversion se font dans cet onglet de navigateur avec un analyseur écrit pour cet usage. Rien n’est envoyé sur un serveur, et le refus de développer les entités externes empêche toute partie du fichier de déclencher un accès vers l’extérieur.
Questions fréquentes
Comment l’élément répété est-il choisi ?
En comptant, dans tout le document, les frères de même nom et en prenant le chemin qui en a le plus, en privilégiant le chemin le plus profond en cas d’égalité. Le chemin retenu est affiché et vous pouvez le remplacer par n’importe quel chemin que vous saisissez.
Où vont les attributs ?
Dans leurs propres colonnes, préfixées par @ par défaut, donc @id pour un attribut sur l’enregistrement et sum.@currency pour un attribut sur un élément imbriqué. Vous pouvez changer le préfixe ou ignorer les attributs.
Que deviennent les éléments imbriqués ?
Ils deviennent des colonnes nommées par points, par exemple order.customer.city, jusqu’à la limite de profondeur que vous définissez. Tout ce qui est plus profond est écrit comme une chaîne JSON compacte dans une seule cellule plutôt que d’être développé en colonnes supplémentaires.
Que se passe-t-il pour les espaces de noms ?
Les préfixes comme dc: sont supprimés par défaut, donc dc:title devient une colonne nommée title. Si deux espaces de noms utilisent réellement le même nom local dans votre fichier, désactivez la suppression pour les distinguer.
Les flux RSS sont-ils pris en charge ?
Oui, et c’est même le cas où la détection fonctionne le mieux : rss.channel.item est trouvé automatiquement, ce qui donne une ligne par entrée du flux avec title, link et pubDate comme colonnes.
Quelle est la limite de lignes ?
1 048 576 lignes, ce qui est une limite propre au format XLSX. Un flux plus grand est refusé avec un lien vers l’outil de conversion en CSV, qui n’a pas cette contrainte.
Mon fichier est-il envoyé sur un serveur ?
Non. Le fichier est décodé, analysé et converti dans votre navigateur, et les entités déclarées sont refusées au lieu d’être développées. Aucun élément du document ne peut déclencher de requête réseau.