Précédent   Forum des professionnels en informatique > Autres langages > XML/XSL et SOAP > XSL/XSLT/XPATH
XSL/XSLT/XPATH XPath, XSLT, XSL-FO et tout ce qui permet de les mettre en oeuvre . Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 29/03/2006, 11h48   #1
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 27
Points : 14
Points : 14
Par défaut [XSLT] copier un CDATA

dans mon document source XML, j'ai un un element CDATA, j'aimerai le copier tel quel via XSLT. mais je ne sais pas comment le selectionner
ex pour copier les attributs je fais
Code :
<xsl:copy-of select="@*"></xsl:copy-of>
comment puis-je faire pour un cdata

Merci
damyrid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 13h23   #2
Rédacteur/Modérateur
 
Avatar de Erwy
 
Homme erwan
Développeur Web
Inscription : novembre 2003
Messages : 4 974
Détails du profil
Informations personnelles :
Nom : Homme erwan
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2003
Messages : 4 974
Points : 8 020
Points : 8 020
Un cdata n'est pas un type de noeud, il n'y a pas de moyen de le "cibler" en xpath.
De plus la recopie de la balise le contenant recopiera le contenu du cdata mais sans lui
Erwy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 13h58   #3
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 27
Points : 14
Points : 14
y'a t'il un moyen de créer un element CDATA en xslt?
damyrid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 14h31   #4
Rédacteur/Modérateur
 
Avatar de Erwy
 
Homme erwan
Développeur Web
Inscription : novembre 2003
Messages : 4 974
Détails du profil
Informations personnelles :
Nom : Homme erwan
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2003
Messages : 4 974
Points : 8 020
Points : 8 020
en utilisant le cdata-section-elements du xsl:output pour cibler les element resultats ou tu souhaites le cdata

exemple
xml d'entree
Code :
1
2
3
4
5
6
 
<?xml version="1.0" encoding="UTF-8"?>
<R>
	<a>test1</a>
	<b>test2</b>
</R>
xslt

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" cdata-section-elements="a e"/>
	<xsl:template match="/">
		<R>
			<xsl:for-each select="R/*">
				<a>
					<xsl:value-of select="."/>
				</a>
				<e>
					<xsl:value-of select="."/>
				</e>
				<f>
					<xsl:value-of select="."/>
				</f>
			</xsl:for-each>
		</R>
	</xsl:template>
</xsl:stylesheet>
xml resultat
Code :
1
2
3
4
5
6
7
8
9
<?xml version="1.0" encoding="UTF-8"?>
<R>
	<a><![CDATA[test1]]></a>
	<e><![CDATA[test1]]></e>
	<f>test1</f>
	<a><![CDATA[test2]]></a>
	<e><![CDATA[test2]]></e>
	<f>test2</f>
</R>
Erwy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 15h07   #5
Membre chevronné
 
Avatar de luta
 
Inscription : novembre 2003
Messages : 1 038
Détails du profil
Informations forums :
Inscription : novembre 2003
Messages : 1 038
Points : 691
Points : 691
Envoyer un message via MSN à luta
trop cool Erwy, on pourrait pas mettre ça dans la FAQ?
luta est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 15h09   #6
Candidat au titre de Membre du Club
 
Inscription : août 2002
Messages : 27
Détails du profil
Informations forums :
Inscription : août 2002
Messages : 27
Points : 14
Points : 14
merci beaucoup
voici le bout (pas très long mais qui m'a bien pris la tête) qui m'a permis de recopier un doc xml en changeant le nom des éléments et en recopiant les balise CDATA.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fn="http://www.w3.org/2004/07/xpath-functions" xmlns:xdt="http://www.w3.org/2004/07/xpath-datatypes" xmlns:svg="http://www.w3.org/2000/svg">
	<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" cdata-section-elements="svg:style"/>
 
<xsl:template match="*">
		<xsl:variable name="NomElement"><xsl:value-of select="concat('svg:',name())"></xsl:value-of></xsl:variable>
		<xsl:element exclude-result-prefixes="svg" name ="{$NomElement}">
				<xsl:copy-of select="@*"></xsl:copy-of>
				<xsl:copy-of select="text()"></xsl:copy-of>
				<xsl:apply-templates select="*"></xsl:apply-templates>
		</xsl:element>
 
	</xsl:template>
damyrid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 16h26   #7
Membre Expert
 
Avatar de virgul
 
Inscription : novembre 2004
Messages : 1 624
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : novembre 2004
Messages : 1 624
Points : 1 498
Points : 1 498
Envoyer un message via MSN à virgul Envoyer un message via Skype™ à virgul




Magnifique ce truc depuis le temps que je me fait chier avec ces xsl:text et disable-escape... !!!!

Merci Erwy!

++

Thierry
__________________
"Life is short don't forget to inhale"
Mais: "Mieux vaux arriver en retard dans ce monde... qu'en avance à l'autre."

Microsoft Office InfoPath MVP - Mon blog
virgul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2006, 16h48   #8
Rédacteur/Modérateur
 
Avatar de Erwy
 
Homme erwan
Développeur Web
Inscription : novembre 2003
Messages : 4 974
Détails du profil
Informations personnelles :
Nom : Homme erwan
Âge : 35
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Développeur Web
Secteur : Administration - Collectivité locale

Informations forums :
Inscription : novembre 2003
Messages : 4 974
Points : 8 020
Points : 8 020
c'etait marqué la http://www.w3.org/TR/xslt
Erwy est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 04h50.


 
 
 
 
Partenaires

Hébergement Web