Erreur dans le passage de valeur

Résolu
cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014 - 23 janv. 2006 à 09:04
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 - 23 janv. 2006 à 17:49
Bonjour,
J ai une erreur dans mon code xsl et je ne sais pas comment savoir quelle valeur a une variable.
Voici le code:

<xsl:template match= "
user"
>
1

<xsl:if test="
@type='ep'"
>
2

<xsl:if test="
@e164 &gt; 0"
>
3

<xsl:if test="
@loc=$loc "
>
4

<xsl:if test="
grp[@name='Reception']"
>
5

<xsl:if test="
not(contains(@cn,'_'))"
>
6


et les premières données de mon fichier xml sont:

- <user cn ="Appel" guid= " 58255836e909d311bc1c00903306039e " e164 ="0" h323= " Appel " loc ="Flon" filter= " normal " type ="gw">









<pseudo type= " trunk " />





<ep type ="GW" addr= " 127.0.0.1 " port ="16392" product= " innovaphone IP800 " version ="V5.01 sr1-hotfix [05-5874]" h323= " Appel " time ="609098" lic= " true " />



</user>





- <user cn ="Carsten Buchenau" guid= " ea1453a6e909d311bd6d0090330606c4 " e164 ="211" h323= " Carsten " pwd ="********" hw-id= " IP200-03-33-c0 " loc ="Flon" filter= " normal " cd-filter ="normal" type= " ep ">






<grp name ="Reception" />





<grp name= " ec-3127671 " />





<grp name ="ec-3127674" />




<grp name" edifice-com " mode"active" />




<grp name" tapi " mode"active" />




<ep type" EP " addr"10.200.0.32" port= " 16388 " product ="innovaphone 200" version= " V5.01 sr1-hotfix [05-5874] " h323 ="IP200-03-33-c0" time= " 438391 " lic ="true" />



</user>





- <user cn= " Carsten PC " guid ="4d77aa47e909d311ad5e00903306039e" e164= " 280 " h323 ="Carsten PC" loc= " Flon " filter ="normal" type= " gw ">






<ep type ="EP" addr= " 10.200.0.59 " port ="1041" product= " www.te-systems.de XCAPI " version ="2.9.27 (pre-release)" e164= " 280 " h323 ="Carsten PC" time= " 1001779 " lic ="true" />



</user>





- <user cn= " Christel " guid ="6339b76ce909d31185c300903306039e" e164= " 260 " h323 ="Christel" loc= " Rumine " filter ="normal" type= " ep ">






<grp name ="Central" />



</user>


Les affichage de debug me montre que la plupart des tests s'arretent au 3
donc le test suivant <xsl:if test="
@loc=$loc> ne passe pas alors qu'il devrait.

Comment puis-je voir quelle valeur $loc a? J'utilise Visual Web Developer C#. J'espère que quelqu'un peut m'aider.

8 réponses

cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014
23 janv. 2006 à 16:43
Alors j'ai finalement trouvé le problème par moi-même et si ça peut aider quelqu'un qui se retrouverait dans la même situation voici ce qui posait problème:
Cest tout bête, mais pour quelqu'un qui doit reprendre le code de quelqu'un d'autre sans meme connaitre le langage ça saute pas aux yeux. En fait en Xslt les variables ne peuvent être modifiées ce qui est un peu contradictoire pour des "variables" donc

<xsl:variable name="
phone_off"
>none
</xsl:variable>

phone_off ne peut donc pas être modifiée le truc c'est de pas utiliser variable mais param


<xsl:param name="
loc"
></xsl:param>


loc pourra être modifié depuis votre page aspx
Voilà.
3
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 janv. 2006 à 09:35
Bonjour,

d'une part br est une balise fermante donc elle doit etre utilisé comme cela :


ensuite je ne comprend pas la ligne : <xsl:if test="@loc=$loc ">
que veut dire le $loc je ne l'ai jamais vu pour du xsl. Pour afficher la variable tu peux faire : <xsl:value-of select="@loc" />


<HR>
Cyril - MVS - MCP ASP
0
cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014
23 janv. 2006 à 13:07
Hello,
Donc @loc est le mot clé du fichier xml et $loc est la variable du fichier xsl déclarée en haut de la page .xsl comme suit:

<xsl:variable name="
loc"
></xsl:variable>
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 janv. 2006 à 13:30
hum, alors la je ne peux pas vraiment t'aider car je n'ai jamais utilisé de variable en xml.

Vas plutot voir du coté du forum de http://css.alsacreations.com tu trouveras surement des réponses :)


<HR>
Cyril - MVS - MCP ASP
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014
23 janv. 2006 à 13:33
Ok merci pour l'url.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 janv. 2006 à 16:47
Interessant tout ca :)

Comment fais tu pour modifier la variable loc via l'aspx ?


<HR>
Cyril - MVS - MCP ASP<
0
cs_akaii Messages postés 109 Date d'inscription mardi 10 janvier 2006 Statut Membre Dernière intervention 14 février 2014
23 janv. 2006 à 17:19
XmlDocument xml =
new
XmlDocument();

XslTransform xsl =
new
XslTransform();

XsltArgumentList xslarg =
new
XsltArgumentList();

string scriptName;

xml.Load(defautl.xml);
xsl.Load(defautl.xsl);


xslarg.AddParam(
"loc",
"", loc);
xslarg.AddParam(
"sort",
"", sort);
xslarg.AddParam(
"self",
"", scriptName);

//Call the XslTransformation
xsl.Transform(xml, xslarg, Response.Output);


dans ta feuille xsl à la racine:

<xsl:param name="
loc"
></xsl:param>
<xsl:param name="
sort"
></xsl:param>
<xsl:param name="self"></xsl:param>

et voilà ton fichier .aspx donne à tes variables .xsl la valeur que tu veux leur donner.
0
jesusonline Messages postés 6814 Date d'inscription dimanche 15 décembre 2002 Statut Membre Dernière intervention 13 octobre 2010 29
23 janv. 2006 à 17:49
héhé on en apprend tous les jours :)

Merci bien pour ces infos :p


<HR>
Cyril - MVS - MCP ASP
0