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 !