question bete : ma template ne s'exécute pas.
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:
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:
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 :)