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 :

[VB]XML/XSL


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Taz
    Taz est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 18
    Points : 18
    Points
    18
    Par défaut [VB]XML/XSL
    Bonjour !

    Petite question...

    Je maîtrise assez bien le VB et je commence à bien comprendre le couple XML/XSL.

    Les query en XSL sont simple à maintenir en place et tout le toutim de facilités qu'apporte XML.

    Cependant, j'ai une petite question :

    - Si je veux faire une query XSL à partir de VB, faut-il qu'à chaque fois je construise entièrement un fichier XSL avec toutes les balises ?

    - Si oui, la tehcnique de "merge" appliqué au XML pourra-t-elle me proposer une alternative sérieuse à mes recherches ???

    En fait, pour illustrer ma demande, j'ai fait un bête XSL/XML, un exemple vaut toujours mieux qu'une longue explication...

    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
     
    <Team>
        <Person>
            <FirstName>M</FirstName>
            <LastName>J</LastName>
            <Position>Director</Position>
        </Person>
        <Person>
            <FirstName>Nathalie</FirstName>
            <LastName>S</LastName>
            <Position>IT Manager</Position>
        </Person>
        <Person>
            <FirstName>T</FirstName>
            <LastName>P</LastName>
            <Position>IT Member</Position>
            <Position>Telephony Responsible</Position>
        </Person>
        <Person>
            <FirstName>M</FirstName>
            <LastName>V</LastName>
            <Position>IT Member</Position>
            <Position>Oracle Specialist</Position>
        </Person>
        <Person>
            <FirstName>B</FirstName>
            <LastName>B</LastName>
            <Position>IT Member</Position>
            <Position>FileNet Specialist</Position>
        </Person>
    </Team>

    Et mon XSL

    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
     
     
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="text" encoding="ISO-8859-1" doctype-public="-//W3C//DTD HTML 4.01//EN" doctype-system="http://www.w3.org/TR/html4/strict.dtd" indent="yes" />
     
        <xsl:template name="Search_Person">
            <xsl:param name="name" select="0" />
            <xsl:for-each select="Person">
                <xsl:if test="$name = FirstName">
                    <xsl:for-each select="Position">
                    	<xsl:value-of select="." />;
                    </xsl:for-each>
                    <xsl:value-of select="LastName" />;
                </xsl:if>
            </xsl:for-each>
        </xsl:template>
     
        <xsl:template match="Team">
            <xsl:call-template name="Search_Person">
                <xsl:with-param name="name">Benjamin</xsl:with-param>
            </xsl:call-template>
        </xsl:template>
     
    </xsl:stylesheet>

    En fait, je reçois un fichier XML d'un server d'une tierce partie. Plutot que de tout lister bêtement avec VB, j'ai prposé de travailler en XSL (qui est plus robuste/flexible à mon avis). Cependant, je n'arrive toujours pas à concevoir comment je peux travailler facilement avec mes fonctions prédéfinies (Search_Person) à partir de VB...

    Merci de votre aide !

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 83
    Points : 100
    Points
    100
    Par défaut passage de paramètre à une feuille de style
    Bonjour,

    Pour ma part, je ne connais le VB, mais si j'ai bien compris ton problème est d'accèder à tes modèles XSL à partir de VB.

    Le principe est le même quel que soit le langage.

    Tu dois passer tes paramètres à la transformation du moteur en gardant les même nom de paramètre côté Langage de programmation et XML.

    J'ai trouvé un bon exemple à cette url :

    http://www.ischool.washington.edu/ta...Parameters.htm

    Pour t'en servir dans un modèle :

    Dans le VB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    ...
    //on déclare une liste de paramètres
    XsltArgumentList xslArg = new XsltArgumentList();
    //on ajoute un paramètre à la liste
    xslArg.AddParam("monParametreVenantDeVb","","valeur du paramètre");
    ...
    //le deuxième argument est la liste de paramètres
    xslt.Transform(xpathdocument, xslArg, writer);

    Dans le XML
    Après l'élement sthylsheet, on déclare le(s) paramètre(s)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <xsl:param name="monParametreVenantDeVb"/>
    On fait référence à un paramètre dans la feuille de style avec un symbole $ devant son nom.

    Pendant l'appel du modèle de traitement XSL
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        <xsl:template match="Team">
            <xsl:call-template name="Search_Person">
                <xsl:with-param name="name" select="$monParametreVenantDeVb"/>
            </xsl:call-template>
        </xsl:template>
    C'était bien ça ta question ?

    Au revoir,

    xavier

  3. #3
    Taz
    Taz est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2002
    Messages : 18
    Points : 18
    Points
    18
    Par défaut
    Merci !

    C'est tout à fait çà, je regarde si çà fonctionne à partir de VB et je fais un update du topic en conséquence !

    Great Thanks !

Discussions similaires

  1. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  2. Pd de transformation XML/XSL sur un windows 2000 server US
    Par Sylvain Leray dans le forum XMLRAD
    Réponses: 3
    Dernier message: 24/03/2003, 11h00
  3. XML + XSL + PHP
    Par ZzZerf dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 21/03/2003, 15h54
  4. xml -> xsl -> xml
    Par virgile04 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/10/2002, 16h53
  5. Cours en Français sur XML-XSL et XPath
    Par Community Management dans le forum XSL/XSLT/XPATH
    Réponses: 0
    Dernier message: 25/04/2002, 15h46

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