Posez votre question Signaler

[XSL]traitement par défaut ... [Résolu]

Zep3k!GnO 1583Messages postés 22 septembre 2005Date d'inscription 9 février 2012Dernière intervention - Dernière réponse le 23 nov. 2005 à 11:23
Salut tout le monde, (surtout crabs loOl :P )

c'est pour savoir s'il existe un moyen en XSL de traiter les élément non définis dans la feuille de style , au lieu que ceux ci soient simplement recraché en sortie sans les tags qu'il contenait ...
Au moins je pourrai voir dans mes données les tags que je n'ai pas traité ...

Merci à vous.

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."
Lire la suite 

[XSL]traitement par défaut »

18 réponses
Réponse
+0
moins plus
oui, tu dois pour cela créer un template traitant "*"
<xsl:template name="*">
<xsl:value-of select="name()" />
<xsl:block> : </xsl:block>
<xsl:value-of select="text()" />
</xsl:template>
Ajouter un commentaire
Réponse
+0
moins plus
<xsl:template name="*">
Mais le * ne vas pas aussi sélectionner mes autres éléments déjà défini ? ? ?

Merci de ton aide, je suis un vrai newbie en xsl :)

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."

P.S: je fais le Maxi lourd mais il y aurait pas moyen que tu commentes ton truc car je connais pas très bien les appels de fonction genre name() même qi je devine le cheminement du script, je prefers être sur a 100% pour bien comprendre ce que je fais , c'est ce qui m'importe le+...
teebo - 17 nov. 2005 à 15:39
Salut,
La pluspart des processeurs (enfin ceux que j'ai utilisés en tout cas) prennent les définitions les plus spécifiques, donc ton * rentrera en ligne de compte seulement si rien d'autre ne s'applique...
Ajouter un commentaire
Réponse
+0
moins plus
Yes bah merci a vous 2 !

Je testerai ça et si j'ai des soucis, vous me reverrez hihihi :P

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."
Ajouter un commentaire
Réponse
+0
moins plus
Ca ne fonctionne pas avec le *, le moteur me dit que ça n'est pas valide...
J'utilise xsltproc et je tourne sous 2000 ....
voilà pour les infos systeme . . .
Donc si vous savez comment traitez les balises non prise en charge dans la feuille de style , j'suis preneur ...

Merci .

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."
Ajouter un commentaire
Réponse
+0
moins plus
Essaye . a la place de * je crois...
Ajouter un commentaire
Réponse
+0
moins plus
non , le '.' c'est pour l'élément courant ...

Merci quand même :D

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."
Ajouter un commentaire
Réponse
+0
moins plus
Ben écoute, je viens de regarder un peu, même si ce n'est pas encore parfait (il faut fignoler en fonction de ce que tu as dans ton xml) mais un xsl comme ça:

<?xml version="1.0" encoding="windows-1250"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>


<xsl:template match="test">
<xsl:apply-templates/>
</xsl:template>

<xsl:template match="A">
<xsl:value-of select="."/> : Traitement noeud A;<br/>
<xsl:apply-templates select="C"/></xsl:template>

<xsl:template match="*">
<xsl:value-of select="."/> : <b>Undefined TAG;<br/></b>
</xsl:template>

</xsl:stylesheet>



avec un xml comme ça:

<?xml version="1.0" encoding="windows-1250"?>
<?xml-stylesheet href="test.xsl" type="text/xsl"?>
<test>
<A>mavalA</A>
<A>mavalA <C>CdansA</C></A>
<D>mavalD <A>AdansD</A></D>
</test>



Me donne dans IE (rien de mieux sous la patte):

mavalA : Traitement noeud A;
mavalA CdansA : Traitement noeud A;
CdansA : Undefined TAG;
mavalD AdansD : Undefined TAG;
Ajouter un commentaire
Réponse
+0
moins plus
Yes merci de prendre du temps pour me filer un coups de patte c'est CoOl de ta part mec ;P

On est bien d'accord (si j'ai bien tout capté ) que c'est cette partie qui gère les balises non définis dans le xsl ...
<xsl:template match="*">
<xsl:value-of select="."/> : <b>Undefined TAG;<br/></b>
</xsl:template>


j'ai tester avec mon moteur xsltproc avec ton xml et ton xslt et ça passait nickel (miguelle) mais (hélàs il y a un mais ) le truc bizar est que losrque j'ai mis ce Zoli bout de code dans mon xsl a moi avec toutes les autres règles, le moteur ne prends plus en compte mes autres règles... je ne sais pas pourquoi ...
C'est p'tet car au lieu du
<xsl:template match="/">
<xsl:apply-templates/>
</xsl:template>

Moi j'ai mis
<xsl:template match="/">
<xsl:apply-templates match="etude"/>
</xsl:template>


au moins grace a ça j'ai des cas a ne pas traité que je Zap direct mais du coups c'est après a partir de mon élemnt étude ou je lance les apply-templates ... p'tet que mon soucis vient de la ..
je ne sais pas trop d'ou d'autres car pour moi il n'y a que ça qui diffère...

Merci ..

Zep3k!GnO
Ajouter un commentaire
Réponse
+0
moins plus
Fait voir un code minimal qui ne marche pas?

(note que je ne suis pas sûr que ça n'attende pas lundi ou mardi maintenant...)
Zep3k!GnO - 18 nov. 2005 à 16:49
note que je ne suis pas sûr que ça n'attende pas lundi ou mardi maintenant...
hi hi hi normal moi c'est pareil je vais pas tarder à aller prendre mon train :P

Vas y je te mettrai ça sur le forum lundi car ces salops de la SNCF ne vont pas m'attendre ;P

Bon Week et merci de ton aide ...

Zep3k!GnO
Ajouter un commentaire
Réponse
+0
moins plus
voila en gros ce que j'ai ....
<?xml version="1.0" encoding="iso-8859-1"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="ISO-8859-1" indent="no"/>

<xsl:template match="/">
	<xsl:apply-templates select="texteFasc/corps"/>	</xsl:template>

<xsl:template match="texteFasc/corps/texte">
	<xsl:for-each select=".">
			<xsl:variable name="typ"><xsl:value-of select="identTxt/nomTxt"/></xsl:variable>
		<xsl:choose>
			<xsl:when test="@nature = 'code'">	<!--Si c'est un code, on ressort le texte sans 	balisage au prélable-->
				<xsl:apply-templates/>
			</xsl:when>
			<xsl:otherwise>
				<xsl:choose>
					<xsl:when test="$typ = 'Convention'">		<!--Pour savoir ce que l'on sort : TXT-FR ou TXT-I1-->
						<TXT-I1 PUBL="TMP" CDMAJ="NON">
							<xsl:attribute name="ID">			<!--Construction de l'ID,penser a remanier la date pour changer les '/' en '-' -->
								<xsl:text>sys-jly_doc_nat[txt]typ[?Err:typ]src[fra@org[leg]+?Err:pays@org[leg]]dat[</xsl:text>
						
                                                           <xsl:value-of 
                                                               select="identTxt/date/@nor"/>
					                    <xsl:text>]</xsl:text>
							</xsl:attribute>
							<xsl:apply-templates/>
						</TXT-I1>
					</xsl:when>
					<xsl:otherwise>								
                                                <!-- C'est un TXT-FR -->
						<TXT-FR PUBL="TMP" CDMAJ="NON">
							<xsl:attribute name="ID">			<!--Construction de l'ID,penser a remanier la date pour changer les '/' en '-' -->
								<xsl:text>sys-jly_doc_nat[txt]typ[</xsl:text>
						<xsl:value-of select="identTxt/nomTxt"/>
								<xsl:text>]src[</xsl:text>
								<xsl:choose>
							<xsl:when test="identTxt/origine">
						<xsl:value-of select="identTxt/origine"/>
						</xsl:when>
						<xsl:otherwise>
									<xsl:text>fra@org[leg]+?Err:pays@org[leg]</xsl:text> 
									</xsl:otherwise>
								</xsl:choose>
								<xsl:text>]dat[</xsl:text>
								<xsl:value-of 
                                                                     select="identTxt/date/@nor"/>
								<xsl:text>]</xsl:text>
							</xsl:attribute>

						</TXT-FR>
					</xsl:otherwise>
				</xsl:choose>
			</xsl:otherwise>
		</xsl:choose>
	</xsl:for-each>
</xsl:template>
</xsl:stylesheet>


J'ai quelques templates de définis après... et voilà :D

Si t'as une idée donc pour sortir les éléments non traités dans une balise d'erreur style <ERR>blahblahblah</ERR>

Merci.

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."

P.s:désolé pour l'indentation qui n'est pas top... :D
Ajouter un commentaire
Réponse
+0
moins plus
Juste pour dire que je cherche toujours. . .

:P


Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."
Ajouter un commentaire
Réponse
+0
moins plus
J'ai pas encore regardé, mais tu n'aurais pas un exemple de xml qui va avec?
un truc bizarre à première vue quand même:

<xsl:apply-templates select="texteFasc/corps"/>
<xsl:template match="texteFasc/corps/texte">

Ajouter un commentaire
Réponse
+0
moins plus
Ouais je vais essayé de te faire un condenser d ece que je traite en gros....
voilà :
<?xml version="1.0" encoding="iso-8859-1"?>
<texteFasc>
<corps><texte nature="Accord"><identTxt><numTxt>1664</numTxt><nomTxt>Accord</nomTxt><origine>Commission des Communautés européennes</origine><date nor="25/07/1977" format="ext">25 juillet 1977</date><intitule>entre le gouvernement de la République française et le gouvernement de la République de Malte tendant à éviter les doubles impositions et à prévenir l'évasion fiscale <consol-in><rTexte><rNomTxt>Avenant</rNomTxt> <rDate nor="08/07/1994">8 juill. 1994</rDate>, art. <rArt1>1<exp>er</exp></rArt1></rTexte></consol-in>" en matière n'impôts sur le revenu et sur la fortune " (ensemble un protocole et un échange de lettres)</intitule><refPub><e2>JO</e2>, 16 nov. 1979, p. 2834</refPub></identTxt><corpsTxt><txtSeul><alt>Publié par le décret n<exp>o</exp> 79-963, du 26 octobre 1979. Entré en vigueur le 1<exp>er</exp> octobre 1979.</alt><alt><e2>Modifié par :</e2><l typenum="TIRET"><il><alt>l'avenant du 8 juillet 1994 : publié par le décret n<exp>o</exp> 97-867, du 18 septembre 1997 ; entré en vigueur le 1<exp>er</exp> septembre 1997.</alt></il></l></alt></txtSeul><dDivers><art><numArt><art1>1<exp>er</exp></art1></numArt><alt><e1>Personnes visées.</e1> -Le présent Accord s'applique aux personnes qui sont des résidents d'un état contractant ou de chacun des deux états.</alt></art></dDivers><ti>échange de lettres</ti><txtSeul><alt>Ministère des affaires étrangères</alt><alt type="retrait1">Le ministre délégué aux Affaires européennes</alt><alt type="retrait1">Votre Excellence,</alt><alt>iii) Toute personne qui a droit à des avantages fiscaux particuliers à raison de distributions d'un trust soumis aux dispositions de la loi maltaise de 1988 intitulée " the Offshore Trusts Act 1988 " et de ses amendements ultérieurs, étant entendu qu'un trust relevant de cette loi ne possède pas la personnalité morale et ne peut donc bénéficier des dispositions de l'Accord.</alt><alt>Si ces propositions recueillent l'agrément du gouvernement de Malte, j'ai l'honneur de suggérer que la présente lettre et la réponse de votre Excellence constituent un accord à ce sujet entre les deux gouvernements, qui entrera en vigueur à la même date que l'Avenant signé ce jour.</alt></txtSeul></dDivers></corpsTxt></texte></corps></texteFasc>




J'ai fait bien courta car y a d'autres trucs en plus mais voilà en gros le truc . . .

Merci :D

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."
Ajouter un commentaire
Réponse
+0
moins plus
Non toujours personne ? ?

Zep3k!GnO
-->kurtis jackson:"Dans la vie tu as besoin de 3 choses : le fitness, l'aérobic et moi."
Ajouter un commentaire
Réponse
+0
moins plus
Ben y'a toujours ça qui me chagrine dans ton truc:

http://www.commentcamarche.net/forum/affich-1922317#14
Ajouter un commentaire
Réponse
+0
moins plus
Putain ...... Grrrh ouais t'as RAISON mec je vien de modifer c'te pauvre ligne et c'est ok.
Je pense que vue que je faisait appel à un template qu'il ne connaissait pas, il prenait le * qui prend tout le reste pour gérer l'application des styles...

Yeepikaille !

hi hi hi MERCI mec :D

Zep3k!GnO
-->Curtis jackson:"On est des rangers mec, des rangers..."
Ajouter un commentaire
Ce document intitulé « [XSL]traitement par défaut ... » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook