Article View: fr.comp.text.xml
Article #8883Re: [XSLT] modifier juste un attribut et laisser le reste intact
From: Thomas Broyer
Date: Sat, 11 Aug 2001 14:45
Date: Sat, 11 Aug 2001 14:45
50 lines
3032 bytes
3032 bytes
In <1exyzkr.1my5gbt16cqg2iN%manu@netbsd.org>, Emmanuel Dreyfus wrote:
>> <!-- r�gle "de base" -->
>> <xsl:template match="*|@*">
>> <xsl:copy>
>> <xsl:apply-templates select="*|@*"/>
>> </xsl:copy>
>> </xsl:template>
>
> Avec ca, je perds les contenu des tags:
Exact, au temps pour moi.
> Par contre, sur l'exemple que j'ai donn� dans mon pr�c�dent message,
> mais sur un document avec des namespaces, ca ne marche pas. J'ai (entre
> autres) ca au debut du document:
>
> xmlns="http://www.w3.org/Graphics/SVG/SVG-19991203.dtd"
>
> Si je le vire, la transformation fonctionne, sinon rien n'est remplac�
> (le document est pass� tel quel sans modification de l'attribut vis�).
> Je suis tomb� dans une chausse-trappe, mais je ne vois pas laquelle...
XSLT travaille sur le "nom complet" des noeuds, c'est � dire l'ensemble de
l'URI d'espace de noms et du nom local.
Un nom sans pr�fixe dans une expression XPath ou un motif a un URI d'espace
de noms nul, l'espace de noms par d�faut n'est pas utilis�.
Il faut donc dans la feuille de style d�clarer l'espace de noms SVG et
l'associer � un pr�fixe ; et ensuite utiliser des noms pr�fix�s dans les
expressions et motifs.
>> > 4) Ce travail ne serait il pas plus "naturel" � accomplir avec un outil
>> > comme xerces-perl, qui permet de manipuler le document XML avec une
>> > interface DOM?
>> C'est bien possible.
>
> Va falloir trouver un sp�cialiste dans la salle
C'est pas bien difficile.
1. parser le document
2. trouver le noeud d'attribut "attrib" et le noeud d'�l�ment "c" et plus
pr�cis�ment le noeud de texte qu'il contient (via getFirstChild, etc.
ou une expression XPath)
3. faire les tests et modifs sur le contenu
4. s�rialiser le document (via un DocumentPrinter ou quelque chose comme
�a)
Apr�s c'est principalement une histoire de syntaxe.
Tom.
Technical Details
Message-ID:
<47502256.r3eYUQgxmL@ltgt.net>Path:
arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!193.251.151.101!opentransit.net!proxad.net!feeder2-1.proxad.net!nnrp3.proxad.net.POSTED!not-for-mailReferences:
<1exycgv.9gwme91dtoka2N%manu@netbsd.org> <3737983.xmLvFx2qVV@ltgt.net> <1exyzkr.1my5gbt16cqg2iN%manu@netbsd.org>Show Full Headers
Complete Article Headers
X-Google-Language: FRENCH,ASCII X-Google-Thread: 114f60,c6bfcc54f553e8f2 X-Google-Attributes: gid114f60,public X-Google-ArrivalTime: 2001-08-11 07:45:21 PST Path: arc1-ca.pugleaf.net!archiver1.google.com!newsfeed.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!193.251.151.101!opentransit.net!proxad.net!feeder2-1.proxad.net!nnrp3.proxad.net.POSTED!not-for-mail Message-ID: <47502256.r3eYUQgxmL@ltgt.net> From: Thomas Broyer <ptittom+news@free.fr> Subject: Re: [XSLT] modifier juste un attribut et laisser le reste intact Newsgroups: fr.comp.text.xml References: <1exycgv.9gwme91dtoka2N%manu@netbsd.org> <3737983.xmLvFx2qVV@ltgt.net> <1exyzkr.1my5gbt16cqg2iN%manu@netbsd.org> Lines: 50 Organization: </> User-Agent: KNode/0.5.6 MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8Bit Date: Sat, 11 Aug 2001 14:45:21 GMT NNTP-Posting-Host: 193.252.183.228 X-Complaints-To: abuse@proxad.net X-Trace: nnrp3.proxad.net 997541121 193.252.183.228 (Sat, 11 Aug 2001 16:45:21 CEST) NNTP-Posting-Date: Sat, 11 Aug 2001 16:45:21 CEST