Bonjour,
Le jeudi 17 novembre 2005 à 02:11 +0100, Markus (locations-ventes.net) a
écrit :
> Bonjour a Tous
> J' essaye de mettre au point une feuille XSL de modification d' un fichier XHTML.
> Le but est de completer certains attributs qui peuvent etre manquant.
> En l' occurence: les "title" sur les <a> et aussi reformater les url en url "Absolues" (avec http://)
>
> Je me heurte a un comportement complement étrange juste en déplacant un <xsl:attribute> avant ou apres un <xsl:if>
>
> avant: tout est OK ma fonction en PHP est appelée
> apres: aucun appel fait, c est comme si le <xsl:attribute> était ignoré.
>
> MARCHE:
> <xsl:when test="name()='a'">
> <xsl:copy>
> <xsl:attribute name="href">
> <xsl:value-of select="php:functionString('page_format_href_absolute',@href)"/>
> </xsl:attribute>
> <xsl:if test="not(normalize-space(@title))">
> (....)
> </xsl:if>
>
> MARCHE PAS:
> <xsl:when test="name()='a'">
> <xsl:copy>
> <xsl:if test="not(normalize-space(@title))">
> (....)
> </xsl:if>
> <xsl:attribute name="href">
> <xsl:value-of select="php:functionString('page_format_href_absolute',@href)"/>
> </xsl:attribute>
>
>
> C' est comme si apres le <xsl:if>, l' atribut "href" était
> "read-only".
Non, le document de sortie est toujours en "append only"...
C'est d'ailleurs sans doute la raison de vos problèmes : une des
conséquences d'être en "append only" est qu'il faut écrire d'abord tous
les attributs puis ensuite seulement les noeuds texte et éléments.
Si dans les (...) vous générez des noeuds texte et/ou des éléments, vous
ne pouvez donc pas déplacer ce bloc pour le mettre avant la génération
des attributs!
Cordialement,
Eric van der Vlist
PS: vous apprenez très vite pour un débutant en XSLT!
--
Freelance consulting and training.
http://dyomedea.com/english/
------------------------------------------------------------------------
Eric van der Vlist http://xmlfr.org http://dyomedea.com
(ISO) RELAX NG ISBN:0-596-00421-4 http://oreilly.com/catalog/relax
(W3C) XML Schema ISBN:0-596-00252-1 http://oreilly.com/catalog/xmlschema
------------------------------------------------------------------------
--
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)
Received on Thu Nov 17 08:01:47 2005