Bonjour à tous,
je travaille sur en projet en TAL et je dois mettre en valeur des patrons morpho-syntaxiques (ici NOM et ADJ).
Je travaille à partir d'un fichier xml qui ressmble à ca :
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
 
<item number="1">
<titre><article>
<element><data type="type">PRO:DEM</data><data type="lemma">ce</data><data type="string">Ce</data></element>
<element><data type="type">PRO:REL</data><data type="lemma">que</data><data type="string">que</data></element>
<element><data type="type">NOM</data><data type="lemma">l’on</data><data type="string">l’on</data></element>
<element><data type="type">VER:pres</data><data type="lemma">savoir</data><data type="string">sait</data></element>
<element><data type="type">PRP</data><data type="lemma">de</data><data type="string">de</data></element>
<element><data type="type">NOM</data><data type="lemma">l’attentat</data><data type="string">l’attentat</data></element>
<element><data type="type">PRP:det</data><data type="lemma">du</data><data type="string">du</data></element>
<element><data type="type">NAM</data><data type="lemma">Nouvel</data><data type="string">Nouvel</data></element>
<element><data type="type">NAM</data><data type="lemma">An</data><data type="string">An</data></element>
<element><data type="type">PRP</data><data type="lemma">dans</data><data type="string">dans</data></element>
<element><data type="type">DET:ART</data><data type="lemma">un</data><data type="string">un</data></element>
<element><data type="type">NOM</data><data type="lemma">club</data><data type="string">club</data></element>
<element><data type="type">ADJ</data><data type="lemma">d’Istanbul</data><data type="string">d’Istanbul</data></element>
<element><data type="type">SENT</data><data type="lemma">.</data><data type="string">.</data></element>
</article>
</titre>
Et voici mon code pour mettre en valeur ce pattern ADJ-NOM. Le problème c'est que ma template qui match //data ne s'execute pas. Je crois savoir pourquoi mais je ne peux pas faire autrement. Je ne maitrise pas assez bien Xpath et Xslt.
Enfin elle s’exécute bien mais elle n'affiche rien.
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
 
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:myNS="http://devedge.netscape.com/2002/de">
    <xsl:output method="html"/>
 
<xsl:template match="/">
 
  <html>
    <body>      
    <xsl:apply-templates/>
    </body>
  </html>
 
</xsl:template>   
 
 <xsl:template match="//item">
  <p>
   <xsl:for-each select="//element">
       <xsl:apply-templates/>
   </xsl:for-each>
 </p><br />      
</xsl:template>
 
<xsl:template match="//data">    
    <xsl:choose>
        <xsl:when test="data[@type='type']='NOM' or data[@type='type']='ADJ'">
            <b><font color="yellow"><xsl:value-of select="data[@type='string']/text()"/></font></b>
            <font color="blue"><xsl:value-of select="data[@type='lemma']/text()"/></font>
            <i><font color="green"><xsl:value-of select="data[@type='type']/text()"/></font></i>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="data[@type='string']/text()"/>
            <font color="blue"><xsl:value-of select="data[@type='lemma']/text()"/></font>
            <i><font color="green"><xsl:value-of select="data[@type='type']/text()"/></font></i>
        </xsl:otherwise>
   </xsl:choose>
</xsl:template>
 
</xsl:stylesheet>
Merci d'avance