Comment analyser XML en utilisant VBA : Un guide étape par étape

L’analyse d’XML peut sembler intimidante au début, surtout pour ceux qui sont nouveaux dans le monde de VBA. Si vous avez besoin d’accéder à des valeurs à partir d’une structure XML, comme extraire les coordonnées X et Y d’un point, vous êtes au bon endroit ! Dans cet article, nous allons explorer le processus d’analyse d’XML en VBA pour extraire des données efficacement.

Le problème : Extraction des valeurs X et Y

Imaginez que vous avez une chaîne XML qui ressemble à ceci :

<PointN xsi:type='typens:PointN' 
xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' 
xmlns:xs='http://www.w3.org/2001/XMLSchema'>
    <X>24.365</X>
    <Y>78.63</Y>
</PointN>

Vous souhaitez extraire les valeurs de X et Y afin de pouvoir les stocker en tant que variables entières dans votre code VBA. En tant que novice en XML et VBA, la question se pose : Comment puis-je y parvenir ?

La solution : Utiliser MSXML2.DOMDocument

Heureusement, il existe une méthode simple pour analyser des données XML en utilisant l’objet MSXML2.DOMDocument dans VBA. Voici les étapes que vous devez suivre :

Étape 1 : Configurer la référence MSXML2

Avant de commencer à coder, assurez-vous d’avoir référencé la bibliothèque Microsoft XML, v6.0 dans votre éditeur VBA. Voici comment :

  1. Ouvrez votre éditeur VBA (Appuyez sur ALT + F11).
  2. Cliquez sur Outils > Références.
  3. Recherchez Microsoft XML, v6.0 et cochez la case à côté.
  4. Cliquez sur OK.

Étape 2 : Charger la chaîne XML

Vous pouvez charger votre chaîne XML dans un DOMDocument comme suit :

Dim xmlDoc As Object
Set xmlDoc = CreateObject("MSXML2.DOMDocument.6.0")

xmlDoc.LoadXML "<PointN xsi:type='typens:PointN' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xs='http://www.w3.org/2001/XMLSchema'><X>24.365</X><Y>78.63</Y></PointN>"

Étape 3 : Accéder aux nœuds X et Y

Une fois la structure XML chargée, vous pouvez facilement accéder aux valeurs X et Y en utilisant la méthode selectSingleNode :

Dim xValue As Double
Dim yValue As Double

xValue = xmlDoc.SelectSingleNode("//X").Text
yValue = xmlDoc.SelectSingleNode("//Y").Text

Étape 4 : Stocker en tant que variables entières

Si nécessaire, vous pouvez convertir ces valeurs en entiers :

Dim xInt As Integer
Dim yInt As Integer

xInt = CInt(xValue)
yInt = CInt(yValue)

Résumé des étapes

  1. Configurez la référence à MSXML2.
  2. Chargez votre chaîne XML dans un DOMDocument.
  3. Utilisez selectSingleNode pour obtenir les valeurs de X et Y.
  4. Convertissez les valeurs en entiers si nécessaire.

Conclusion

Analyser XML en VBA peut sembler compliqué au début, mais avec l’objet MSXML2.DOMDocument, cela devient une tâche beaucoup plus simple. En suivant ces étapes, vous pouvez facilement extraire des valeurs de structures XML et les utiliser dans votre travail.

Pour des lectures et explorations supplémentaires, envisagez de consulter les ressources suivantes :

Avec ce guide, vous serez bien équipé pour aborder l’analyse XML dans vos projets VBA. Bon codage !