From: Fabrice Estiévenart (fe@cetic.be)
Date: 22/01/2004 - 10:41
At 10:39 22/01/2004 +0100, you wrote:
>bonjour
>
> >> > <p>ce <b>programme</b> ne fonctionne <br>pas</p>
>
>au passage, le fragment ci dessus n'est pas syntaxiquement correct
>-> <br/>
>
> > bizarre, de mon côté, j'obtiens 4 noeuds texte à partir de l'exemple cité
> > ci-dessus (mon processeur XSL est celui fourni avec Xalan Java); c-à-d :
> > <p>
> > #text : ce
> > #text : programme
> > #text : ne fonctionne
> > #text : pas
> > </p>
>
>vous vouliez
> >> > <p>ce programme ne fonctionne pas</p>
>
>et c'est effectivement ce que vous obtenez !
>qu'il y ait 4 noeuds texte qui se suivent n'est qu'un détail au niveau
>du parser, mais les deux résultats sont équivalents en terme xml
l'idée sous-jacente est de parcourir en parallèle 2 fichiers html
(tidyisés) afin de comparer leurs structures...tout en ignorant certains
éléments considérés non-significatifs tels <b> ou <br>
si dans un premier fichier html j'ai ceci :
<p>
#text : ce
#text : programme
#text : ne fonctionne
#text : pas
</p>
et dans un second, cela :
<p>
#text : ce programme ne fonctionne pas
</p>
le comparateur doit considérer les deux fichiers identiques...si je ne peux
fusionner les noeuds texte, je modifierai alors ce comparateur...
>De plus, c'est tout à fait logique que le processeur génère ce genre
>de résultat car les morceaux de texte sont produits par des
>templates différents...
d'où l'idée d'introduire une boucle dans un template "text" qui
concaténerait les valeurs obtenues pour les frères du noeud texte...en
bref, un truc du style :
<xsl:template match="text()">
...traitements...
<xsl:for-each select="following-sibling">
...traitements...
<xsl:value-of select="concat($full_text,$part_text)"/>
</xsl:for-each>
</xsl:template>
mais c'est encore un peu flou pour moi, pour le moment...
>d'où la question : quel est le problème ? pourquoi 4 noeuds texte
>au lieu d'1 est génant ? quelle est votre chaîne de traitements ?
>si il y a quelque chose à faire (fusionner les 4 noeuds en 1) ce n'est
>pas forcement dans le xslt qu'il faut le faire...
>
> >
> > idéalement, j'aimerais aussi récupérer les attributs...j'ai essayé
> > <xsl:copy-of> mais cet élément n'accepte pas <xsl:apply-templates/> comme
> > fils...
>
>Il suffit de lui dire :)
>
><xsl:template match="*|@*">
> <xsl:copy>
> <xsl:apply-templates select="node()|@*"/>
> </xsl:copy>
></xsl:template>
merci, ça fonctionne bien
salutations,
Fabrice Estiévenart
>cordialement
>
>--
>XPath free testing software : http://lantern.sourceforge.net
>Frédéric Laurent http://www.opikanoba.org
>
>--
>Devenez redacteur <XML>fr et contribuez au developpement du
>xml francophone (http://xmlfr.org/infos/redacteurs/) !
>
>Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
>
>Cette liste est a votre disposition pour discuter en francais de
>tout sujet technique lie a XML.
>
>Pour resilier votre abonnement, envoyez un message contenant
>la commande "unsubscribe" a xml-tech-request@xmlfr.org
>(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC
webmaster@xmlfr.org
|