Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

XSL processing nodes

0 views
Skip to first unread message

Mickaël Wolff

unread,
Jul 6, 2009, 5:04:27 AM7/6/09
to
Bonjour,

J'ai un fichier XHTML2 que je souhaite transformer en un équivelent
HTML4 ou XHTML1.1. Dans le fichier d'origine, j'ai une instruction de
traitement XML xml-stylesheet. Je souhaiterais exploiter cette
instruction de traitement XML pour créer un l'élément link dans le
document (X)HTML.

Le problème est que les processing instructions ne sont pas traitées
comme des éléments. C'est logique, mais du coup, les « attributs » ne
sont parsés. Le contenu du nœud est considéré comme du texte.

La conséquence est que je ne peux pas intégrer le contenu à un
élément link.

<xsl:template match='processing-instruction()'>
<link><!-- comment intègre-t-on la valeur ? --></link>

<!-- ceci affiche la liste des « attributs » -->
<xsl:value-of select='.' />
</xsl:template>

Avez-vous une solution ?

Merci !
--
Mickaël Wolff aka Lupus Michaelis
http://lupusmic.org

Seeking for a position <http://lupusmic.org/pro/>

Alain Ketterlin

unread,
Jul 6, 2009, 3:02:30 PM7/6/09
to
Mickaël Wolff <mickae...@laposte.net> writes:

> Le problème est que les processing instructions ne sont pas traitées
> comme des éléments. C'est logique, mais du coup, les « attributs » ne
> sont parsés. Le contenu du nœud est considéré comme du texte.

Oui, c'est effectivement du texte brut (qui n'est pas considéré comme
faisant partie du contenu du document, mais est destiné à l'application.

> <xsl:template match='processing-instruction()'>
> <link><!-- comment intègre-t-on la valeur ? --></link>
>
> <!-- ceci affiche la liste des « attributs » -->
> <xsl:value-of select='.' />
> </xsl:template>
>
> Avez-vous une solution ?

A grands coups de substring-before, substring-after etc. Au pif:

<xsl:value-of
select="substring-before(substring-after(.,'href="'),'"')"/>

-- Alain.

Mickaël Wolff

unread,
Jul 7, 2009, 3:11:48 AM7/7/09
to
Alain Ketterlin a écrit :

>> Avez-vous une solution ?
>
> A grands coups de substring-before, substring-after etc. Au pif:

J'aurais dû rajouter le qualificatif « élégant » ;) À force de
fouiller, je me suis rendu compte qu'il existait une version 2.0 de
XSLT, et qu'ils y avaient ajouté des choses intelligentes :

<http://www.w3.org/TR/xslt20/#regular-expressions>

Mais en cherchant des ressources sur XSLT, on ne trouve que des
ressources parlant de XSLT 1.0. Forcément, on trouve difficilement.

Merci pour ta proposition !

Alain Ketterlin

unread,
Jul 7, 2009, 3:29:47 AM7/7/09
to
Mickaël Wolff <mickae...@laposte.net> writes:

> Alain Ketterlin a écrit :
>>> Avez-vous une solution ?
>>
>> A grands coups de substring-before, substring-after etc. Au pif:
>
> J'aurais dû rajouter le qualificatif « élégant » ;)

Ce qui est subjectif, bien sûr.

> À force de fouiller, je me suis rendu compte qu'il existait une
> version 2.0 de XSLT

Vérifie quand même si ton moteur implémente 2.0. Ou alors EXSLT, qui
intègre des expressions régulières.

-- Alain.

0 new messages