Import de données XML dans une base de données ACCESS.
Import de données XML dans une base MYSQL
Procédure :
- Données de départ : XML
- Transformation : XSL
- Attention : tous les caractères non définis dans l’entête bloque le traitement. (exemple : € / é /Ô ….)
- http://www.w3.org/TR/REC-html40/sgml/entities.html
- Import : XML => ACCESS
L’attribut « match » de la balise <xsl:template> permet de définir (grâce à la notation XPath) le ou les éléments du document XML sur lesquels s’applique la transformation.
La notation Xpath permet de définir des patterns, c’est-à-dire des chaînes de caractères permettant de repérer un noeud dans le document XML. Les principaux patterns sont :
Pattern | Exemple | Signification |
---|---|---|
| | Gauche|Milieu | Indique une alternative (un noeud ou bien l’autre (ou les deux)) |
/ | personne/nom | Chemin d’accès aux éléments (personne/bras/gauche) au même titre que l’arborescence utilisée généralement pour les fichiers (/usr/bin/toto) |
* | * | Motif « joker » désignant n’importe quel élément |
// | //personne | Indique tous les descendants d’un noeud |
. | . | Caractérise le noeud courant |
.. | .. | Désigne le noeud parent |
@ | @valeur | Indique un attribut caractéristique (dans l’exemple l’attribut value |
La transformation peut être réalisée
- soit par ajout de texte,
- soit en définissant des éléments de transformation, c’est-à-dire des éléments permettant de définir des règles de transformation à appliquer aux éléments sélectionnés par l’attribut match
Exemple code VBA 6.0
https://khany.developpez.com/tutoriel/xml/
Public Sub ImportXML() Dim doc As MSXML2.DOMDocument Dim parent As MSXML2.IXMLDOMElement Dim fils As MSXML2.IXMLDOMNode Dim dt As DAO.Recordset Set dt = CurrentDb.OpenRecordset("table1") Set doc = New MSXML2.DOMDocument doc.async = False doc.Load (emplacement et nom du fichier XML) ' Recherche des noeuds IDENT For Each parent In doc.getElementsByTagName("IDENT") dt.AddNew ' parcourir noeud fils du parent For Each fils In parent.childNodes ' attribut = nom du champs dt.Fields(fils.nodeName) = fils.Text Next dt.Update Next Set doc = Nothing dt.close Set dt = nothing End Sub
Manipulation XML / PHP
- Vérifier que le composant DOM/XML est activé => PHPInfo()
- Voir fonction SimpleXML
- Conversion MYSQL=> XML en PHP avec exemple Google Map API :
Biblio :
- Transformation XML via XSL :
- Manipulation XML/PHP => DOM
- SimpleXML (basic mais efficace):
- Le XML en général avec les bases de données :