Comment transformer un fichier XML en SQL ? (Par Denis Sanchez , Netapsys) Code XSL pour transformer les données XML

Voici le code XSL permettant de transformer les données provenant de notre fichier XML.

Dans notre cas, nous voulons récupérer les colonnes suivantes code, code_type, nom, nom_certificateur, code_validation, type_certification. et les mettre dans une table diplome.

Nous voulons aussi nettoyer les données des apostrophes.

Voici le fichier : certif.xsl

 <?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 
 <xsl:param name="apostrophe">&apos;</xsl:param>
 <xsl:template name="cleanQuote">
  <xsl:param name="string" />
  <xsl:if test="contains($string, $apostrophe)"><xsl:value-of select="substring-before($string, $apostrophe)" />&apos;&apos;<xsl:call-template name="cleanQuote"><xsl:with-param name="string"><xsl:value-of select="substring-after($string, $apostrophe)" /></xsl:with-param></xsl:call-template></xsl:if>
  <xsl:if test="not(contains($string, $apostrophe))"><xsl:value-of select="$string" /></xsl:if>
 </xsl:template>
 
   <xsl:template match="diplomes/parametres"/>
   <xsl:template match="diplomes/fiche-diplome">
           <xsl:text> INSERT INTO diplome (code, code_type, nom, nom_certificateur, code_validation, type_certification) VALUES ( </xsl:text>
           <xsl:value-of select="code-diplome"/>
           <xsl:text>, </xsl:text>
           <xsl:value-of select="code-type-diplome"/>
           <xsl:text>, &apos;</xsl:text>
   <xsl:call-template name="cleanQuote"><xsl:with-param name="string"><xsl:value-of select="intitule-diplome"/></xsl:with-param></xsl:call-template>
           <xsl:text>&apos;, &apos;</xsl:text>
   <xsl:call-template name="cleanQuote"><xsl:with-param name="string"><xsl:value-of select="liens-diplomes-validations/lien-diplomes-validations/nom-validation"/></xsl:with-param></xsl:call-template>
           <xsl:text>&apos;, </xsl:text>
           <xsl:value-of select="liens-diplomes-validations/lien-diplomes-validations/code-validation"/>
           <xsl:text>, &apos;</xsl:text>
   <xsl:call-template name="cleanQuote"><xsl:with-param name="string"><xsl:value-of select="intitule-type-diplome"/></xsl:with-param></xsl:call-template>
           <xsl:text>&apos; </xsl:text>
           <xsl:text>);</xsl:text><br/>       
   </xsl:template>
</xsl:stylesheet>

 

Base de données