Mon projet XML+XSL

Mon projet XML+XSL - XML/XSL - Programmation

Marsh Posté le 17-07-2006 à 13:36:26    

Bonjour à tous, je crée ce post pour pouvoir le remonter facilement avec mes questions sur le XML+XSL par rapport un projet de feed de news.
 
Merci et @ très vite ;)


Message édité par xkamui le 18-07-2006 à 12:42:24
Reply

Marsh Posté le 17-07-2006 à 13:36:26   

Reply

Marsh Posté le 17-07-2006 à 13:38:35    

euh...non.:o
On crée un thread quand on a une question.:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 17-07-2006 à 13:40:18    

Me re-voici donc pour ma première question...
 
Elle concerne la fonction 'xsl:variable'
 
Je voudrais savoir deux choses :  
1. Comment définir dans la variable na valeur du noeud
2. Comment récupérer cette valeur et l'afficher (ou la comparer)
 
Voici ce que j'ai :

Code :
  1. <xsl:for-each select="infos/fils/info">
  2. <xsl:variable name="the_mois" select="mois" />
  3. <li class="li-fils-00">$the_mois</li>
  4. </xsl:for-each>

Le tout c'est que., quand je met ça, il m'affiche '$the_mois' au lieu de '07' par exemple...
 
J'ai été là pour voir comment marchait cette fonction : lien externe, mais je n'ai pas tout bien compris, d'où ma question ici ;)
 
@ bientôt pour vos réponses.
Merci

Reply

Marsh Posté le 17-07-2006 à 13:44:20    

Code :
  1. <xsl:value-of select='$the_mois'/>


 
http://www.greyc.ensicaen.fr/ensic [...] rs_XML.pdf


Message édité par zapan666 le 17-07-2006 à 13:46:31

---------------
my flick r - Just Tab it !
Reply

Marsh Posté le 18-07-2006 à 12:00:57    

Merci beaucoup zapan !!
 
Nouvelle question :  
Voilà... ce que je veux faire c'est grouper les infos par date, genre, je les affiches toutes mais je ne ré-affiche pas la date :  
    * 17/07
    * 11h22 Basket-ball, NBA : Adrian Griffin à Chicago
 
    * 16/07
    * 19h16 Basket-ball, Pro A : Cooper et Smith signent à Strasbourg
    * 17h37 Basket-ball, NBA : Un an de plus pour Mourning
    * 12h41 Basket-ball, NBA : Eddie Jordan prolongé aux Wizards
 
    * 15/07
    * 19h16 Basket-ball, NBA : Tyson Chandler quitte les Bulls
    etc...
 
Donc, ce que j'essaye de mettre en place, c'est une comparaison entre la date du noeud en cours et la date du noeud précédent.
Si toutefois la date du noeud en cours est égale, on ne fait rien, si elle est différente, on ré-affecte la date de référence avec la nouvelle date et on affiche la date...
Mais c'est là que ça bloque... comment pouvoir récupérer la valeur du node 'time' du node n-1 ??
 
J'ai donc ceci :

Code :
  1. <xsl:variable name="the_date" select="time" />
  2. <xsl:variable name="old_date" select="position()-1" />


Mais bien sur, il me retourne un chiffre... j'aimerais que celà soit aussi simple que le PHP et que le chiffre obtenu me permette de récupérer la valeur précédente, tel une clé de array...
 
Es-ce que vous yu voyez une idée pour récupérer ce dont j'ai besoin ??
Merci et @+

Reply

Marsh Posté le 18-07-2006 à 12:39:31    

Change le titre en "Mon projet XSL", puisque c'est pas du XML là, mais du XSL :o ;)
 
Sinon, pour récupérer la valeur du noeud précédent, c'est un peu carrément la galère.
 


    <xsl:if test="$stk + TOTAL/business_data &gt;= /layout_data/application_data/temporaire/param[@name='chp:qtecde']/@value and ($stk + ../DynamicRow[current()/@index - 1]/TOTAL/business_data &lt; /layout_data/application_data/temporaire/param[@name='chp:qtecde']/@value or @index = 1)">
     <xsl:attribute name="style">
      background-color:red;
     </xsl:attribute>
    </xsl:if>


 
Essaie de te dépatouiller avec ça, j'ai pas le courage de re-comprendre l'usine à gaz que j'ai pondu l'autre jour :sweat:

Reply

Marsh Posté le 18-07-2006 à 12:40:11    

PS: @index est dans mon noeud XML.
Tu va être obligé de faire de même, car position() déconne, tu ne peux pas faire ça avec

Reply

Marsh Posté le 18-07-2006 à 12:54:02    

Tu as l'exemple de ta structre XML pour que je puisse comprendre un petit peu plus :p  :sweat:

Message cité 1 fois
Message édité par xkamui le 18-07-2006 à 12:54:14
Reply

Marsh Posté le 18-07-2006 à 14:15:25    

xkamui a écrit :

Tu as l'exemple de ta structre XML pour que je puisse comprendre un petit peu plus :p  :sweat:


chuis pas sûr que tu vas mieux comprendre :ange:
 

<?xml version="1.0" encoding="UTF-8"?><layout_data>
   <application_data>
      <user>
         <name>DEMO</name>
         <language>FRA</language>
      </user>
      <language>FRA</language>
      <target></target>
      <presentation_support>NAV/MIC</presentation_support>
      <sys_date>20060718</sys_date>
      <sys_time>14:11:48:346</sys_time>
      <frame>default</frame>
      <entity>1</entity>
      <authentificationMode>GNX</authentificationMode>
      <requestPath>http://SRVGNXWEB.BCI.local/gce/btoe/GCE/</requestPath>
      <temporaire>
         <param name="chp:nompro" value="BIBLIO COLONNES CORINTHE"/>
         <param name="chp:sigdep" value="DPT"/>
         <param name="chp:typtie" value="CLI"/>
         <param name="render_type" value="xsl"/>
         <param name="frame" value="default"/>
         <param name="chp:qtecde" value="1"/>
         <param name="chp:codzn3" value=""/>
         <param name="chp:codsoc" value="2"/>
         <param name="chp:codpro" value="A10301"/>
      </temporaire>
   </application_data>
   <S_BCI_VTIE type="View" total_business_row="1" nbline="1" numpage="1" nbpage="1" retrieve_key="DEF" sort_key="DEF">
      <Dynamic type="ViewObject">
         <DynamicRow current="true" type="ViewRow" index="1" business_row_index="1">
            <NOMTIE precision="18" type="VARCHAR">
               <business_data>xxxxx</business_data>
            </NOMTIE>
            <TYPTIE precision="3" type="VARCHAR">
               <business_data>CLI</business_data>
            </TYPTIE>
            <CODLAN precision="3" type="VARCHAR">
               <business_data>FRA</business_data>
            </CODLAN>
            <CODSOC precision="0" type="NUMERIC">
               <business_data>2</business_data>
            </CODSOC>
            <FAMTIE precision="6" type="VARCHAR">
               <business_data>CLIENT</business_data>
            </FAMTIE>
            <LIBUT_SOC precision="25" type="VARCHAR">
               <business_data>BOIS &amp; CHIFFONS IN</business_data>
            </LIBUT_SOC>
            <SIGTIE precision="12" type="VARCHAR">
               <business_data>xxxxx</business_data>
            </SIGTIE>
            <S_BCI_STOCK_NOW type="View" name="STOCK_NOW" total_business_row="1" nbline="1" numpage="1" nbpage="1">
               <Dynamic type="ViewObject">
                  <DynamicRow current="true" type="ViewRow" index="1" business_row_index="1">
                     <TERME precision="0" type="NUMERIC">
                        <business_data>39</business_data>
                     </TERME>
                     <RECEP precision="0" type="NUMERIC">
                        <business_data>0</business_data>
                     </RECEP>
                     <DISPO precision="0" type="NUMERIC">
                        <business_data>-11</business_data>
                     </DISPO>
                     <DATPSK precision="1" type="CHAR">
                        <business_data> </business_data>
                     </DATPSK>
                     <RESERVE precision="0" type="NUMERIC">
                        <business_data>11</business_data>
                     </RESERVE>
                  </DynamicRow>
               </Dynamic>
            </S_BCI_STOCK_NOW>
            <S_BCI_STOCK_DATE type="View" name="STOCK_DATE" total_business_row="0" nbline="99" numpage="1" nbpage="0">
               <Dynamic type="ViewObject"/>
            </S_BCI_STOCK_DATE>
         </DynamicRow>
      </Dynamic>
   </S_BCI_VTIE>
   <debug>
      <Ctx name="ctxRef">
         <Ctx name="FrameCtx">
            <Ctx name="default">
               <Ctx name="AppRequest">
                  <Value name="view">[]</Value>
                  <Value name="nbLine">{}</Value>
                  <Value name="chp">[{typtie=CLI, sigdep=DPT, codpro=A10301, codzn3=, codsoc=2, qtecde=1, nompro=BIBLIO COLONNES CORINTHE}]</Value>
                  <Value name="renderType">xsl</Value>
                  <Value name="selection">{}</Value>
                  <Value name="transactionValidity">true</Value>
                  <Value name="cinematic">[fr.generix.technicalframework.application.ActionStateHolder@fd4bba, fr.generix.technicalframework.application.ActionStateHolder@176bf9e, fr.generix.technicalframework.application.ActionStateHolder@11e2b21]</Value>
               </Ctx>
               <Value name="frameName">default</Value>
               <Ctx name="BusinessViewCtx">
                  <Value name="currentBusinessView">fr.generix.technicalframework.application.BusinessViewProxy@ef27e3</Value>
                  <Value name="newBusinessView">true</Value>
                  <Value name="beginBusinessView">fr.generix.technicalframework.application.BusinessViewProxy@ef27e3</Value>
               </Ctx>
            </Ctx>
         </Ctx>
         <Ctx name="SessionCtx">
            <Value name="supportLanguage">FRA</Value>
            <Value name="user">DEMO</Value>
            <Value name="enableTimerLogger">false</Value>
            <Value name="presentationSupport">NAV/MIC</Value>
            <Value name="target"></Value>
            <Value name="userLanguage">FRA</Value>
            <Value name="entity">1</Value>
            <Value name="userRecognize">true</Value>
         </Ctx>
         <Value name="businessFacade">fr.generix.technicalframework.application.BusinessFacade@1e6661</Value>
      </Ctx>
      <businessview name="S_BCI_STOCK" target="" executeQuery="newBusinessView" renderType="xsl">
         <viewstruct name="S_BCI_STOCK" defaultRetrieve="DEF" defaultSort="DEF">
            <view name="" type="S_BCI_VTIE" nbLine="1" create="false" docSharedName="" executeQuery="optimize" verboseDetail="true" currentRetrievePublicKey="DEF" currentSortPublicKey="DEF">
               <viewlink>
                  <viewlink_retrieve viewKey="USER" publicKey="DEF">
                     <viewlink_param domain="public" field="codsoc" value="2"/>
                     <viewlink_param domain="public" field="typtie" value="CLI"/>
                  </viewlink_retrieve>
               </viewlink>
               <public_field/>
               <retrieve_clause viewKey="DEF" clause=""/>
               <sort_clause viewKey="DEF" clause=""/>
               <document type="Dynamic" state="3" currentRow="0">
                  <viewobject name="Dynamic" defFullName="DYNAMIC" rowSetBufferSize="1" viewObjectBufferSize="5"/>
               </document>
               <view name="STOCK_NOW" type="S_BCI_STOCK_NOW" nbLine="1" create="false" docSharedName="" executeQuery="newBusinessView" verboseDetail="true" currentRetrievePublicKey="DEF" currentSortPublicKey="DEF">
                  <viewlink>
                     <viewlink_retrieve viewKey="PRODEP" publicKey="DEF">
                        <viewlink_param domain="business" field="CODSOC" value="2"/>
                        <viewlink_param domain="public" field="sigdep" value="DPT"/>
                        <viewlink_param domain="public" field="codpro" value="A10301"/>
                     </viewlink_retrieve>
                     <sort_clause viewKey="DEF" publicKey="DEF"/>
                  </viewlink>
                  <public_field/>
                  <retrieve_clause viewKey="DEF" clause=""/>
                  <sort_clause viewKey="DEF" clause="datpsk"/>
                  <document type="Dynamic" state="3" currentRow="0">
                     <viewobject name="Dynamic" defFullName="DYNAMIC" rowSetBufferSize="1" viewObjectBufferSize="5"/>
                  </document>
               </view>
               <view name="STOCK_DATE" type="S_BCI_STOCK_DATE" nbLine="99" create="false" docSharedName="" executeQuery="always" verboseDetail="true" currentRetrievePublicKey="DEF" currentSortPublicKey="DEF">
                  <viewlink>
                     <viewlink_retrieve viewKey="PRODEP" publicKey="DEF">
                        <viewlink_param domain="business" field="CODSOC" value="2"/>
                        <viewlink_param domain="public" field="sigdep" value="DPT"/>
                        <viewlink_param domain="public" field="codpro" value="A10301"/>
                     </viewlink_retrieve>
                     <sort_clause viewKey="DEF" publicKey="DEF"/>
                  </viewlink>
                  <public_field/>
                  <retrieve_clause viewKey="DEF" clause=""/>
                  <sort_clause viewKey="DEF" clause="datpsk"/>
                  <document type="Dynamic" state="3" currentRow="0">
                     <viewobject name="Dynamic" defFullName="DYNAMIC" rowSetBufferSize="1" viewObjectBufferSize="5"/>
                  </document>
               </view>
            </view>
         </viewstruct>
      </businessview>
   </debug>
</layout_data>


 
 [:anathema]

Reply

Marsh Posté le 18-07-2006 à 14:43:43    

Effectivement....... :p

Reply

Marsh Posté le 18-07-2006 à 14:43:43   

Reply

Marsh Posté le 18-07-2006 à 23:54:26    

arghhhhhhh :fou:
 
je n'y comprend rien !!!
es-ce que quelqu'un aurait une solution un peu plus simple au problème précédemment posé ??

Reply

Marsh Posté le 19-07-2006 à 00:08:37    

ben tu mets un attribut "index" avec une valeur auto-incrément à chacune de tes nodes.
 
ensuite, pour accéder à la ligne précédente :
 
xml :


<page>
  <n1 index="1">
    <n2>ligne 1</n2>
  </n1>
  <n1 index="2">
    <n2>ligne 2</n2>
  </n1>
  <n1 index="3">
    <n2>ligne 3</n2>
  </n1>
</page>


 
XSL :


<xsl:template match="/page/n1">
  <xsl:value-of select="../n1[current()/@index - 1]/n2"/><br/>
</xsl:template>

Reply

Marsh Posté le 19-07-2006 à 13:09:49    

ok, mais là où ça se complique c'est que mon index précédent n'est pas forcément mon bon index...
 
Je m'explique :  
si je fait une liste d'index auto-incrémenté, mais que chaque noeud contient un iddentifiant de tri (ici 'ref'), lorsque je vais trier mes infos, si je récupère la date de "index-1", cet index ne va pas forcemment correspondre au ref de tri...
 
Donc, en définitve, ce que je veux savoir c'est si je peux :  
1. Lire le noeud en cours (tri activé)
2. Lors de cette lecture, je vérifie si une date de référence est définie (genre variable globale)
3. Conditions de vérifications :  
   3-1. Si elle n'est pas définie, je la définie avec la date en cours et j'affiche la date
   3-2. Si elle est définie, je la compare avec la date en cours
      3-2-1 : Si la date en cours = la date de référence : Je passe mon chemin
      3-2-2 : Si la date en cours != de la date de référence : je re-définis la date de référence avec la date en cours, et j'affiche la date.
 
Pour faire tout ça avec du PHP, c'est ok, mais le truc c'est que je n'ai pas accès à cette technologie sur mon serveur....
 
HELP Please......... :cry:

Reply

Marsh Posté le 19-07-2006 à 14:09:04    

ben là t'es mal.
j'ai jamais trouvé de solution.
 
tu peux toujours faire ça en script js...
 
tu affiches toutes les (pour être sûr d'avoir quelquechose même si js ne marche pas)
puis en js tu vires là où elles servent à rien (relou mais c'est ce qu'il y a de plus simple à faire)

Reply

Marsh Posté le 26-07-2006 à 10:33:15    

re-bonjour @ tous
 
Si je veux faire une application web de listing (juste l'affichage) de mon fichier XML avec XSLT, la DTD.... c'est de la branlette ??

Reply

Marsh Posté le 26-07-2006 à 14:19:24    

"application web de listing (juste l'affichage)" (??)
 
comprends pas ce que tu veux dire exactement :)

Reply

Marsh Posté le 26-07-2006 à 14:20:28    

Arjuna a écrit :

"application web de listing (juste l'affichage)" (??)
 
comprends pas ce que tu veux dire exactement :)


tu veux faire une appli "entière" à partir uniquement d'un xml et d'un/de xsl ?
 
ben look at my sig, tu verras que c'est pas de la branlette, puisque je l'ai fait.
 
mais je ne suis pas sûr que c'est ce que tu demandes, je pige pas ta phrase.

Reply

Marsh Posté le 26-07-2006 à 14:41:48    

juste, je lis le contenu d'un fichier XML et je l'affiche à l'écran, avec quelques conditions de tri

Reply

Marsh Posté le 26-07-2006 à 15:00:26    

ouais, ben donc c'est ce que j'ai dans ma signature (en légèrement plus évolué).
 
=> j'ai un fichier xml
=> j'ai un fichier xsl
=> et roule ma poule
 
(aucun traitement coté serveur)


Message édité par Arjuna le 26-07-2006 à 15:00:47
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed