Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1603 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XML/XSL]Condition if

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[XML/XSL]Condition if

n°1910763
seb06bes
Posté le 31-07-2009 à 17:12:49  profilanswer
 

Bonjour,
 
Je travail actuellement sur un script qui vas chercher les variables date/heure dans un équipement. Le format ne me convient pas, petit exemple : pour juillet j'ai 7 et je voudrais 07 (idem pour l'heure etc...).
 
Je bloque depuis pas mal d'heures dessus car je ne connais pas su tout le langage xml, j'ai cherché sur google et j'ai trouvé de nombreux format différent pour mon if. Il y a des if cond=, des if test= etc et la syntaxe n'est jamais la même...
 
En gros je voudrai simplement faire ca : if $mon < 10
 
 
J'ai compris rapidement que les < > c'était assez critique à manipuler en xml donc j'ai fais mes tests avec =  
J'ai essayé plein de synthaxe, ce n'a jamais fonctionné :
 
<if $mon = 10>
<if ($mon = 10)>
<if "$mon" = "10">
<if "$mon" = '10'>
<if "$mon" = 10>
.....
 
idem avec des if test= et des if cond=
 
La je sature donc je vous demande de m'aider un poil. Je sais que ca doit être super simple en plus...
 
D'avance merci.
 
Seb


Message édité par seb06bes le 31-07-2009 à 17:39:35
mood
Publicité
Posté le 31-07-2009 à 17:12:49  profilanswer
 

n°1910773
avander
Posté le 31-07-2009 à 17:27:33  profilanswer
 

C'est presque ça...

<xsl:if test="$month lt 10">


 
T'as pensé a Google?

n°1910776
seb06bes
Posté le 31-07-2009 à 17:29:45  profilanswer
 

Merci je vais essayé ca.
 
Oui bien sur j'ai pensé à google : condition if xml
 
et il n'y a aucune trace de "lt" j'ai aussi parcouru des tutos en vain.
 
Je te tiens au courant, en tout cas merci encore.

n°1910780
masklinn
í dag viðrar vel til loftárása
Posté le 31-07-2009 à 17:34:53  profilanswer
 

seb06bes a écrit :

Merci je vais essayé ca.
 
Oui bien sur j'ai pensé à google : condition if xml
 
et il n'y a aucune trace de "lt" j'ai aussi parcouru des tutos en vain.
 
Je te tiens au courant, en tout cas merci encore.


Tu fais pas du XML là tu fais du XSL [:prozac]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1910782
seb06bes
Posté le 31-07-2009 à 17:36:41  profilanswer
 

Je comprends mieux, ca ne fonctionne pas.
 
Voici un résumé de mon code.
 
<?xml version="1.0" encoding="utf-8" ?>
<voicemail xmlns="http://www.innovaphone.com/xsd/voicemail6.xsd">
    <function define="Main">
        <pbx-getcallinfo out-cgpn="$cgpn" out-leg2="$leg2"/>
        <pbx-finduser-e164 e164="$cgpn" out-cn="$cn" />
   <store-getstat name="NULL" out-mday="$mday" out-mon="$mon" out-year="$year" out-hour="$hour" out-min="$min" />  
   <lib-strcat string="$cn" string2="/store" out-string="$sub" />
   <store-getnew root="$sub" out-url="$ctrl"/>
 
   <xsl:if test="$mon lt 10">  
    <lib-strcat string="$ctrl" string2="0" out-string="$ctrl" />
    <lib-strcat string="$ctrl" string2="$mon" out-string="$ctrl" />
   </xsl:if>  
   <else>
    <lib-strcat string="$ctrl" string2="$mon" out-string="$ctrl" />
    </else>  
 
   <lib-strcat string="$ctrl" string2=".g729" out-string="$ctrl" />
   <pbx-record url="$ctrl" barge-in="false"/>
  <pbx-disc/>
    </function>
</voicemail>
 
Je ne sais pas s'il faut un if comme ca :
 
 <xsl:if test="$month > 10">  
  <lib-strcat string="$ctrl" string2="0" out-string="$ctrl" />
  <lib-strcat string="$ctrl" string2="$mon" out-string="$ctrl" />
 </xsl:if>  
 
Ou comme ca :  
 <if test="$month > 10">  
  <lib-strcat string="$ctrl" string2="0" out-string="$ctrl" />
  <lib-strcat string="$ctrl" string2="$mon" out-string="$ctrl" />
 </if>  
 
Sachant dans ces 2 cas que ca ne peut pas fonctionner à cause du > qui considère qu'on ferme le if.
 
Merci


Message édité par seb06bes le 31-07-2009 à 17:39:13
n°1911096
seb06bes
Posté le 03-08-2009 à 09:55:46  profilanswer
 

Qu'est ce qui est mauvais dans mon code?
 
sachant que j'ai suivi ce que tu m'a indiqué : <xsl:if test="$month lt 10">
 
Je ne trouve aucune trace de ce lt sur google


Message édité par seb06bes le 03-08-2009 à 09:57:57
n°1911105
pataluc
Posté le 03-08-2009 à 10:20:37  profilanswer
 

http://lmgtfy.com/?q=xsl+if

 

première réponse:

Code :
  1. <xsl:if test="$month &lt; 10">
 

t'as du bien chercher.


Message édité par pataluc le 03-08-2009 à 10:20:57
n°1911109
seb06bes
Posté le 03-08-2009 à 10:40:37  profilanswer
 

Merci j'avais trouvé ces sites et comme je l'ai dis aussi j'ai trouvé pleins de synthaxe différente, la preuve avander m'a donné <xsl:if test="$month lt 10"> j'avais ensuite essayé <xsl:if test="$month $lt 10">
 
Ca ne fonctionne toujours pas avec <xsl:if test="$month $lt; 10">

Message cité 1 fois
Message édité par seb06bes le 03-08-2009 à 10:44:14
n°1911112
seb06bes
Posté le 03-08-2009 à 10:47:30  profilanswer
 

Pour résumer ce que je souhaite faire :

 

    Si $mon < 10, alors
      <lib-strcat string="$ctrl" string2="0" out-string="$ctrl" />
      <lib-strcat string="$ctrl" string2="$mon" out-string="$ctrl" />
     Finsi
     Sinon
      <lib-strcat string="$ctrl" string2="$mon" out-string="$ctrl" />
     Finsinon

 

Les parties en gros sont à coder pour que le reste du script fonctionne.


Message édité par seb06bes le 03-08-2009 à 10:52:32
n°1911113
pataluc
Posté le 03-08-2009 à 10:49:00  profilanswer
 

seb06bes a écrit :

Merci j'avais trouvé ces sites et comme je l'ai dis aussi j'ai trouvé pleins de synthaxe différente, la preuve avander m'a donné <xsl:if test="$month lt 10"> j'avais ensuite essayé <xsl:if test="$month $lt 10">

 

Ca ne fonctionne toujours pas avec <xsl:if test="$month $lt; 10">


relis bien ce que j'ai mis. et essaie de comprendre la logique de la syntaxe.


Message édité par pataluc le 03-08-2009 à 10:49:50
mood
Publicité
Posté le 03-08-2009 à 10:49:00  profilanswer
 

n°1911116
seb06bes
Posté le 03-08-2009 à 10:55:19  profilanswer
 

Sur le site http://www.xml.com/pub/a/2003/04/02/trxml.html
 
Il ne disent nulle part $lt mais < et > quand on est dans du <xsl:if  
 
Je ne comprends pas ce qu'il y a à comprendre dans la synthaxe. C'est du codage, si un ""Si $mon < 10, alors"" s'écrit <xsl:if test="$month $lt; 10"> je ne vois pas trop ce qu'il y a à comprendre.
 
Je ne comprend pas pourquoi l'autre site utilise les < et >
 
Désolé, je suis pas programmeur, j'ai juste fais un peu de prog en C en iut mais mon boss ne veut rien savoir... je suis dépassé par toutes les infos qui se contredise


Message édité par seb06bes le 03-08-2009 à 10:56:42
n°1911118
pataluc
Posté le 03-08-2009 à 10:57:34  profilanswer
 

quand je dis relis mon post, c'est parce que c'est un "&lt;" et pas un "$lt;".
 
d'où la "logique" de la syntaxe: on met un & car c'est un échappement html/xml et pas une variable.

n°1911124
seb06bes
Posté le 03-08-2009 à 11:08:09  profilanswer
 

Merci je n'avais pas fait attention en effet.
 
Cela ne fonctionne toujours pas. Ce que je ne comprends pas c'est pourquoi mon "sinon" ne fonctionne pas non plus. Tu pense qu'un "if" mal configurer peut faire planter le script et donc ne pas lire la suite du programme ?

n°1911129
pataluc
Posté le 03-08-2009 à 11:13:26  profilanswer
 

je suis pas un spécialiste xsl, mais oui ca me semble logique.
 
essaie donc de virer donc else, et fait déja fonctionner ton if...

n°1911130
pataluc
Posté le 03-08-2009 à 11:14:46  profilanswer
 
n°1911161
masklinn
í dag viðrar vel til loftárása
Posté le 03-08-2009 à 11:38:34  profilanswer
 


Oui et non: pas de if/else en XSLT, mais xsl:choose peut faire le même boulot:

Code :
  1. <xsl:choose>
  2.    <xsl:when test="$condition">
  3.        <!-- si $condition est true -->
  4.    </xsl:when>
  5.    <xsl:otherwise>
  6.        <!-- si $condition est false -->
  7.    </xsl:otherwise>
  8. </xsl:choose>


xsl:choose fonctionne comme un switch/case sans fallthrough.


Message édité par masklinn le 03-08-2009 à 11:43:57

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1911165
seb06bes
Posté le 03-08-2009 à 11:40:02  profilanswer
 

Depuis le début je ne sais pas si'l faut utiliser du xsl car dans le script que j'ai modifié il y avait des if et des else et ca fonctionnait. Par contre je ne comprenais pas leur synthaxe :
 
        <if cond="$cn">
            <if cond="$leg2">
                  ............
            </if>
            <else>
                   ...........
            </else>
            ...............
        </if>
 
Ici il n'y a pas de xls, tout en xml. Par contre je ne comprends pas les if... moi je veux juste "if $mon < 10" c'est tout...

n°1911172
masklinn
í dag viðrar vel til loftárása
Posté le 03-08-2009 à 11:44:07  profilanswer
 


seb06bes a écrit :

Depuis le début je ne sais pas si'l faut utiliser du xsl car dans le script que j'ai modifié il y avait des if et des else et ca fonctionnait. Par contre je ne comprenais pas leur synthaxe :

Code :
  1. <if cond="$cn">
  2.    <if cond="$leg2">
  3.        
  4.    </if>
  5.    <else>
  6.  
  7.    </else>
  8.  
  9. </if>


 
Ici il n'y a pas de xls, tout en xml. Par contre je ne comprends pas les if... moi je veux juste "if $mon < 10" c'est tout...


Je sais pas ce qu'est ce truc, mais c'est sûrement pas du XSL (XLS ce sont les fichiers excel). Pour les dialectes custom à la con, faut voir leur source ya pas de magiciens ici personne peut aider.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1911196
seb06bes
Posté le 03-08-2009 à 12:11:01  profilanswer
 

Bon ok je vais donner le script entier avec le commande que je souhaite avoir en gras :
 
<?xml version="1.0" encoding="utf-8" ?>
<voicemail xmlns="http://www.innovaphone.com/xsd/voicemail6.xsd">
    <function define="Main">
        <pbx-getcallinfo out-cgpn="$cgpn" out-leg2="$leg2"/>
        <pbx-finduser-e164 e164="$cgpn" out-cn="$cn" />
   <store-getstat name="NULL" out-mon="$mon" out-year="$year"/>  
   <lib-strcat string="$cn" string2="/store" out-string="$sub" />
   <store-getnew root="$sub" out-url="$ctrl"/>
   <lib-strcat string="$ctrl" string2="-" out-string="$ctrl" />
   <lib-strcat string="$ctrl" string2="$year" out-string="$ctrl" />
   <lib-strcat string="$ctrl" string2="." out-string="$ctrl" />
 
   Si $mon < 12 alors :
    <lib-strcat string="$ctrl" string2="0" out-string="$ctrl" />
    <ib-strcat string="$ctrl" string2="$mon" out-string="$ctrl" />
   
   Sinon
    <ib-strcat string="$ctrl" string2="$mon" out-string="$ctrl" />
   
   <lib-strcat string="$ctrl" string2="-" out-string="$ctrl" />
  <!-- Numero appelant -->
   <lib-strcat string="$ctrl" string2="$cgpn" out-string="$ctrl" />
   <lib-strcat string="$ctrl" string2="-" out-string="$ctrl" />
  <!-- Numero appele -->
   <lib-strcat string="$ctrl" string2="$leg2" out-string="$ctrl" />
  <!-- Choix du codec .g711a ou .g729 -->
   <lib-strcat string="$ctrl" string2=".g729" out-string="$ctrl" />
   <pbx-record url="$ctrl" barge-in="false"/>
  <pbx-disc/>
    </function>
</voicemail>


Message édité par seb06bes le 03-08-2009 à 12:12:10
n°1911214
pataluc
Posté le 03-08-2009 à 13:07:56  profilanswer
 

c'est moi ou ca ressemble pas complètement à du xsl ton truc?

n°1911222
masklinn
í dag viðrar vel til loftárása
Posté le 03-08-2009 à 13:46:22  profilanswer
 

pataluc a écrit :

c'est moi ou ca ressemble pas complètement à du xsl ton truc?


C'en est pas, voir au dessus.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1911226
seb06bes
Posté le 03-08-2009 à 13:55:49  profilanswer
 

Non ce n'est pas du xls, je n'ai jamais dis ca.
 
J'ai juste dis que c'était du xml.
 
Le code que j'ai mis n'est pas suffisant ? car je ne dispose de rien de plus.

n°1911243
pataluc
Posté le 03-08-2009 à 14:12:42  profilanswer
 

nan mais ce qu'on te dit (enfin surtout masklinn) c'est que vu que c'est du code non standard, propre à ton domaine et/ou ta boite ("Pour les dialectes custom à la con" dixit masklinn) on peut pas deviner d'où vient le problème.
 
ton xml il est interprété par quoi/qui, etc...

n°1911251
seb06bes
Posté le 03-08-2009 à 14:23:28  profilanswer
 

ah ok, c'est un système de boite vocal qui utilise un fichier vm.xml
 
Pour ajouter la fonction d'enregistrement il faut lui ajouter le record.xml (le fichier que je vous ai mis un peu plus haut).  
 
C'est un équipement de téléphonie voix sur IP qui s'occupe de tout ca. C'est allemand et leur support n'est pas au top... Il m'ont renvoyé plusieurs fichier record.xml que j'ai du débuggé. Et comme je l'ai dis au début, je voudrais juste ajouter un 0 quand le mois indiqué est en dessous de 10 pour avoir 08 par exemple a la place de 8.

n°1911253
masklinn
í dag viðrar vel til loftárása
Posté le 03-08-2009 à 14:27:58  profilanswer
 

seb06bes a écrit :

ah ok, c'est un système de boite vocal qui utilise un fichier vm.xml
 
Pour ajouter la fonction d'enregistrement il faut lui ajouter le record.xml (le fichier que je vous ai mis un peu plus haut).  
 
C'est un équipement de téléphonie voix sur IP qui s'occupe de tout ca. C'est allemand et leur support n'est pas au top... Il m'ont renvoyé plusieurs fichier record.xml que j'ai du débuggé. Et comme je l'ai dis au début, je voudrais juste ajouter un 0 quand le mois indiqué est en dessous de 10 pour avoir 08 par exemple a la place de 8.


C'est bien mais on peut pas t'aider, faut demander aux gars d'en face ou aux gens de ta boite comment fonctionne leur truc [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1911283
seb06bes
Posté le 03-08-2009 à 14:44:34  profilanswer
 

ok, je comprends.
 
Je pensais que c'était du xml classique et qu'il suffisait de connaitre la syntaxe d'un "if $X < Y" pour me dépatouiller.  
 
D'autant plus qu'il y avait un if dans leur 1ere version du fichier : <if cond="$cn"> mais incompréhensible pour moi car je ne comprends pas à quoi est comparé $cn...
 
Pour moi "cond", c'est comme "test".

Message cité 1 fois
Message édité par seb06bes le 03-08-2009 à 14:46:55
n°1911312
masklinn
í dag viðrar vel til loftárása
Posté le 03-08-2009 à 15:29:12  profilanswer
 

seb06bes a écrit :

ok, je comprends.
 
Je pensais que c'était du xml classique


Le "XML classique" ça n'existe pas. XML n'est pas un langage, c'est un meta-language/meta-format. En soi, XML ne veut strictement rien dire et n'a aucun intérêt (pas que ça en ait beaucoup plus quand on ajoute des couches) [:spamafote]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  [XML/XSL]Condition if

 

Sujets relatifs
variable à condition multiple[RESOLU] erreur pendant le chargement un fichier XML
XML zone cliquableXSL + SVG + javascript
[PHP/XML] Problème pour trouver le code PHP à partir du code VBS[XML/php/Mysql] Caractere chinois
parser un fichier XMLconvertir un fichier texte en fichier XML
[XSL FO]incrémenter une cellule avec une condition sous excel
Plus de sujets relatifs à : [XML/XSL]Condition if


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR