IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

[XSLT] creation de feuille xslt automatique


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [XSLT] creation de feuille xslt automatique
    bonjour,


    Je reçois chaque jour des dizaines de fichiers XML de mon sous-traitant. J'aimerais savoir s'il existe un moyen rapide et fiable pour créer automatiquement des feuilles de style XSL visant à présenter sous forme ergonomique le contenu d'un fichier XML. Mon objectif est de vérifier/valider leur contenu sans devoir ouvrir dans un éditeur le fichier XML.
    Je n'ai pas trouvé précisément la réponse en consultant les archives du forum.
    merci aux experts qui voudront bien répondre à ma question.
    bonne journée

    jax

  2. #2
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    quel est le but de cette visualisation ? Effectuer un contrôle visuel de la structure du fichier, et vérifier qu'elle est conforme à la structure attendue ? Si c'est le cas, il serait préférable d'industrialiser le contrôle en écrivant un schéma (XSD) qui permettra de valider automatiquement cette structure.

    Sinon, il est possible d'opérer des traitements XSLT génériques, mais c'est assez limité...

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    le but n'est pas de vérifier la structure du fichier xml, mais bien de voir le contenu de ce fichier afin de valider les données qui se trouve à l'intérieur, or avec un simple éditeur XML c'est assez fastidieux voir impossible de lire les balises, je voudrai voir le contenu de mes champs de façon +- organisée au sein de page html générique.
    Je ne veux pas rentrer dans la programmation d'une feuille XSL élaborée avec javascript inclu et autres moulinettes du genre. Il me faut qqchose de fonctionnel
    merci pour l'aide

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2003
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 34
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    Il doit s'agir d'une validation "subjective" j'imagine, sinon l'idée d'utiliser un schéma me paraîssait pertinente (les schéma sont très riches et peuvent valider le contenu de vos "champs" à partir du moment où vous définisez des régles).
    Dans le cas d'une validation "à vue" de vos données xml, s'il s'agit juste d'une problème de présentation, pourquuoi ne pas simplement ouvrir le fichier dans votre navigateur web qui l'affichera très certainement de manière indentée avec une arborescence dépliable.
    Il s'agit en l'occurence d'une transformation xml/xsl effectuée par le navigateur automatiquement. Si cela ne correpond pas à l'affichage que vous souhaitez, je pense qu'il faut alors définir une autre xsl (je vous en joint une que j'avais réalisé il y a un certain temps). Si c'est la mise en oeuvre de cette transformations que vous ne trouvez pas fonctionnel, vous pouvez par exemple changer la xsl par défaut de votre navigateur, vous n'aurez alors plus qu'à glisser vos document xml dans le navigateur (je n'ai jamais essayé et ça dépend de votre navigateur mais c'est une idée)
    Sinon il serait assez facile de développer une page html avec bouton "parcourir" pour selectionner votre fichier xml et effectuer la transformation. (j'en ai une toute faite, qui marche sous ie, pas testé avec les autres mais il y a plusieurs fichiers donc difficile de poster ici)
    Sinon je sais qu'XMLspy propose une vison très conviviale des fichiers xml mais c'est un logiciel payant.

    En espèrant que ces idées vous aide,

    Matthieu.

    feuille de style générique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    	<xsl:output method="html" encoding="Windows-1252"/>
     
    	<xsl:template match="/*">
    		<html>
     
    		<style type="text/css">
    		.FERME {background-color:#BBBBCC; font-family: Verdana; font-size: 
    8pt; cursor:pointer;}
    		.OUVERT { background-color:#EEF3FB; font-style:blod;font-family: 
    Verdana; font-size: 8pt; cursor:pointer;}
    		.DERNIER { font-style:blod;font-family: Verdana; font-size: 8pt;}
    		.VALEURNOEUD { background-color:#FFFFCC; font-family: Verdana; 
    font-size: 8pt;}
    		.ATTRIBUT {color:#999999;}
    		</style>
     
     
    		<script language="javascript">
    			function affiche_cache(objet){
    			ObjetCible=objet.parentNode.nextSibling;
    			if (ObjetCible.style.display=="none"){
    			    ObjetCible.style.display="block";
    			    objet.className="OUVERT";
    			      }
    			else{    
    			    ObjetCible.style.display="none";
    			    objet.className="FERME";
    			    }
    			}
    		</script>
     
    			<body>		
    				<table width="100%" align="center" border="1">
    					<tr>
    						<td width="100%" align="center" class="OUVERT" 
    onclick="javascript:affiche_cache(this);">
    							<xsl:attribute name="colspan"><xsl:value-of 
    select="count(child::*)"/></xsl:attribute>
    							<b><xsl:value-of select="name()"/></b>
    	                				(<span class="ATTRIBUT"><xsl:for-each 
    select="@*"><b><xsl:value-of select="name()"/></b> : <i><xsl:value-of 
    select="."/></i>  </xsl:for-each></span>)    
                      				</td>
    					</tr>
    					<tr>
    						<xsl:apply-templates select="*"/>
    					</tr>
    				</table>
    			</body>
    		</html>
    	</xsl:template>
     
     
    	<xsl:template match="*">
    		<td valign="top" bgcolor="white">
    			<xsl:choose>
     
    				<xsl:when test="*">
    					<table width="100%" align="center" border="1">
    						<tr>
    							<td width="100%" align="center" class="FERME" 
    onclick="javascript:affiche_cache(this);">
    								<xsl:attribute name="colspan"><xsl:value-of 
    select="count(child::*)"/></xsl:attribute>
    								<b>	<xsl:value-of select="name()"/></b>
    								 (<span class="ATTRIBUT"><xsl:for-each 
    select="@*"><b><xsl:value-of select="name()"/></b> : <i><xsl:value-of 
    select="."/></i>  </xsl:for-each></span>)
    							 </td>		
    						</tr>
    						<tr style="display:none">
    							<xsl:apply-templates select="*"/>
    						</tr>
    					</table>
    				</xsl:when>
     
    				<xsl:otherwise>
    					<div class="DERNIER">
    					<b><xsl:value-of select="name()"/></b>						
    					 (<span class="ATTRIBUT"><xsl:for-each 
    select="@*"><b><xsl:value-of select="name()"/></b> : <i><xsl:value-of 
    select="."/></i> </xsl:for-each></span>)
    					 </div>
    					 <div class="VALEURNOEUD"><xsl:value-of select="."/></div>
             			</xsl:otherwise>
     
    			</xsl:choose>
    		</td>
    	</xsl:template>
    </xsl:stylesheet>

Discussions similaires

  1. [XSLT]utiliser une feuille xsl pour traiter différents xml
    Par pistache42 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 09/05/2006, 18h19
  2. Executer une feuille XSLT sur du xml
    Par naiadeKaren dans le forum Général Python
    Réponses: 2
    Dernier message: 24/08/2005, 14h53
  3. [XSL] recherche feuille XSLT 1.0 IE
    Par sylviiie dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/07/2005, 09h21
  4. namespace dans feuille xslt : comment ca marche exactement ?
    Par guipom dans le forum XSL/XSLT/XPATH
    Réponses: 13
    Dernier message: 11/11/2004, 16h21
  5. pb eval pour le code php dans une feuille xslt
    Par nipepsi dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 10/09/2004, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo