Article View: fr.comp.text.xml
Article #8477Auriez-vous une id�e ... le retour !
From: Rapha�l THERY
Date: Wed, 10 Oct 2001 09:07
Date: Wed, 10 Oct 2001 09:07
88 lines
4031 bytes
4031 bytes
La discussion que nous avions engag�e il y a de cela un peu plus d'un mois
(avant que je ne parte en vacance) concernait le format d'un dictionnaire de
traduction. De bonnes id�es m'avaient �t� fournies notamment par Alain
Ketterlin et Thomas Broyer mais l'�criture des feuilles de styles en
identifiant tous les termes � traduire (<p><term id="fromage"> <em><term
id="et"></em> <term id="formage"></p>) ne me convient toujours pas !
Raison � cela : l'�criture des feuilles de styles est pour l'instant
r�alis�e par des personnes qui ne maitrise pas forcement le HTML, qui
pr�f�rent pour l'instant utiliser des logiciels de cr�ation ... donc l'ajout
de texte du style "<term id='..'>" me parait un peu compromis. (il ne fera
pas l'adhesion). d'autre part j'ai besoin de stocker dans le dictionnaire
"fromage et dessert" plutot que trois termes distincts. Je sais ce n'est pas
optimis� mais c'est une demande de la traduction car dans certains contextes
la traduction peut �tre diff�rente !
Donc je reprends l'exemple du Fromage et dessert d'Alain
<p>Fromage <em>et</em> dessert</p>
le noeud �l�ment <p> a trois fils :
- du texte (Fromage_)
- un �l�ment <em>
- du texte (dessert_)
l'�l�ment <em> a lui m�me un fils texte (et).
Question : Comment r�cup�rer cette phrase �pur�e de toutes balises ?
La solution imparfaite ci-dessous me permet de r�cuperer le PREMIER texte de
chaque noeud �l�ment constituant une phrase.
<?xml version="1.0" encoding="ISO-8859-1" ?>
<texte>
<para>un texte sans histoire</para>
<para>l� le <b>texte</b> se corse !</para>
<para>que <b><i>dire</i></b> ici</para>
<para>toujours la m�me <u>chose</u> !</para>
</texte>
<?xml version="1.0" encoding="ISO-8859-1" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" encoding="ISO-8859-1" />
<xsl:template match="text()"></xsl:template>
<xsl:template match="/"><terms><xsl:apply-templates select="texte"
/></terms></xsl:template>
<xsl:template match="*">
<xsl:choose>
<xsl:when test="i|b|u">
<item>
<xsl:value-of select="text()" />
<xsl:for-each select="*">
<xsl:call-template name="complexe" />
</xsl:for-each>
</item>
</xsl:when>
<xsl:otherwise>
<xsl:if test="normalize-space(text())">
<item><xsl:value-of select="text()" /></item>
</xsl:if>
<xsl:apply-templates />
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="complexe">
<xsl:value-of select="text()"/>
<xsl:for-each select="*">
<xsl:call-template name="complexe" />
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
En fait lorsque l'on d�tecte des noeuds fils (i, u, ...) il faudrait faire
une boucle sur l'ensemble des fils et dire
- si noeud texte j'affiche la valeur,
- si noeud non texte j'appele le template complexe qui se charge d'afficher
la valeur ...
mais comment le faire et est-on certain que l'ordre soit respect� ?
d'avance merci
Rapha�l
Technical Details
Message-ID:
<3bc40b55$0$15456$626a54ce@news.free.fr>Path:
arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!skynet.be!skynet.be!proxad.net!feeder2-1.proxad.net!news1-1.free.fr!not-for-mailShow Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,68f2c435f0d305b3,start X-Google-Attributes: gid114f60,public X-Google-ArrivalTime: 2001-10-10 01:48:23 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!skynet.be!skynet.be!proxad.net!feeder2-1.proxad.net!news1-1.free.fr!not-for-mail From: "Rapha�l THERY" <raphael.thery@free.fr> Newsgroups: fr.comp.text.xml Subject: Auriez-vous une id�e ... le retour ! Date: Wed, 10 Oct 2001 11:07:35 +0200 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Lines: 92 Message-ID: <3bc40b55$0$15456$626a54ce@news.free.fr> Organization: Guest of ProXad - France NNTP-Posting-Date: 10 Oct 2001 10:48:22 MEST NNTP-Posting-Host: 195.115.154.77 X-Trace: 1002703702 news1-1.free.fr 15456 195.115.154.77 X-Complaints-To: abuse@proxad.net