je calcule le niveau des elements selon certaine valeur de l'attribut function dans une structure xml de ce type :

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
<phr type="DP" function="SUBJ">
<w type="PRONOM-PERSONNEL 1 SIN-ING" lemma="je">je</w>
</phr>
 
<phr type="AdvP" function="CC">
<w type="ADVERBE" lemma="ne">ne</w>
</phr>
 
<phr type="" function="predicate">
<w type="VERBE-IND-PRE 1 2 SIN" lemma="vouloir">veux</w>
</phr>
 
<phr type="AdvP" function="CC">
<w type="ADVERBE-NEGATION" lemma="pas">pas</w>
</phr>
 
<phr type="TP" function="SO">
<phr type="DP" function="SUBJ">
	</phr>
 
<phr type="" function="predicate">
<w type="VERBE-INF" lemma="partir">partir</w>
</phr>
</phr>
voici mon xsl :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
  <xsl:template match="tei:phr[@function='SUBJ']|tei:phr[@function='predicate']|tei:phr[@function='OBJ']|tei:phr[@function='PrepO']|tei:phr[@function='FPO']|tei:phr[@function='CC']">
        <xsl:element name="span">
            <xsl:attribute name="class">
                <xsl:value-of select="concat(@function,count(ancestor::tei:phr[@function='SUBJ']|tei:phr[@function='predicate']|tei:phr[@function='OBJ']|tei:phr[@function='PrepO']|tei:phr[@function='FPO']|tei:phr[@function='CC']))"/>
            </xsl:attribute>
            <xsl:apply-templates select="node()"/>
        </xsl:element>
    </xsl:template>
le soucis est qu'il ne me renvoit pas les bons éléments je voudrais qu'il ne prenne en compte que les elements avec certains attribut et pas les
autres...je n'ai pas l'impression qu'il le fasse.


merci