Eric van der Vlist a écrit :
> On mer, 2005-06-29 at 11:51 +0200, Jean-Christophe Kermagoret wrote:
>
>
>>>Vous pouvez écrire :
>>>
>>><xsl:element name="w:binData">
>>> <xsl:attribute name="w:name">
>>> <xsl:value-of select="expr XPath"/>
>>> </xsl:attribute>
>>> ...
>>>ou, de manière abrégée ;
>>>
>>><w:binData w:name={expr XPath}>
>>> ...
>>>
>>>où, dans les deux cas, "expr XPath" est une expression XPath déterminant
>>>de manière dynamique la valeur de l'attribut w:name.
>>>
>>>Maintenant, le problème qui se pose est de savoir comment vous voulez
>>>constituer ce nom :-) ...
>>
>>Il y a plusieurs possiblités (non exhaustif) :
>>* positionnement avec un for-each, puis un value-of select="."
>>* utilisation de exslt
>>* utilisation de jxpath
>>
>>Laquelle utilisez-vous ? Pourquoi ? En utilisez-vous une autre ?
>
>
> J'utilise de préférence tout ce que me propose XSLT 1.0 puis, si je suis
> bloqué, EXSLT ou XSLT 2.0 suivant le contexte et le problème.
>
>
>>Le site exslt.org indique que les performances d'un dyn:evaluate seront
>>toujours moins bonnes qu'une expression xpath interprétée en direct.
>>Savez-vous un peu plus précisément quel impact cela a-t-il en terme de
>>performance ?
>
>
> Non, je n'ai pas fait de mesures et en fait je n'ai jamais eu besoin
> d'utiliser dyn:evaluate!
>
> Au besoin, je préfère dans ce cas générer une transformation XSLT et
> l'exécuter dans une deuxième passe.
>
> Mais, êtes vous certain d'avoir besoin de XPath dynamique?
>
> Les expressions XPath sont dynamique par nature, ce que l'on appelle
> généralement expression XPath dynamique est une expression XPath
> construite elle-même de manière dynamique et les cas qui l'imposent sont
> relativement rares.
>
> Pour pouvoir juger, il faudrait que vous nous en disiez plus!
Imaginons la chose suivante :
* d'un côté, j'ai des datas du style
<datas>
<document>
<meta>
<title>Ex de titre</title>
<subtitle>Ex de sous-titre</subtitle>
...
</meta>
<content>
<description>Ex de description</description>
...
</content>
</document>
<document>
...
</document>
</datas>
* de l'autre, j'ai un template xhtml avec des tags value et un attribut
xpath indiquant où se trouve l'information pour le titre, le
sous-titre, la description dans les datas fournies
Je voudrais fusionner le tout avec une XSLT qui ne changera pas, quelles
que soient les datas, mais aussi le modèle. Cette XSLT devrait donc
pouvoir s'appliquer à un modèle de mailing avec des contacts et adresses
dont la structure peut être plus complexe.
J'ai appliqué cette méthode en utilisant le positionnement en fonction
du xpath que je découpe mais la solution ne me paraît pas très propre.
Je peux aussi aplatir les datas ce qui facilitera leur recherche par
positionnement, mais idem, pas très propre.
En utilisant la récursivité, je dois pouvoir obtenir qque chose de plus
joli mais du coup, en terme de perf, je me dis que ca ne doit pas être
mieux que dyn:evaluate.
De son côté, dyn:evaluate est propre et immédiat, mais non standard, et
peut ne pas être disponible selon le parser utilisé.
Comment traiteriez-vous ce problème ?
Merci
JC
>
> Eric
--
Jean-Christophe Kermagoret
jck@BabelObjects.Com
--
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 Wed Jun 29 12:52:58 2005