Erreur dans le passage de valeur [Résolu]

Signaler
Messages postés
109
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
14 février 2014
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
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

Messages postés
109
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
14 février 2014

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à.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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
Messages postés
109
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
14 février 2014

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>
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
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
Messages postés
109
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
14 février 2014

Ok merci pour l'url.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
Interessant tout ca :)

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


<HR>
Cyril - MVS - MCP ASP<
Messages postés
109
Date d'inscription
mardi 10 janvier 2006
Statut
Membre
Dernière intervention
14 février 2014

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.
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
héhé on en apprend tous les jours :)

Merci bien pour ces infos :p


<HR>
Cyril - MVS - MCP ASP