Cliquez ici.
Accueil
 chercher             Plan du site             Info (English version) 
L'histoire de XML s'écrit en ce moment même. XMLfr vous aide à la suivre et à en dégager les tendances.Les listes de discussions XMLfr sont à votre disposition pour réagir sur nos articles ou simplement poser une question.Si vous ètes passionnée(e) par XML, pourquoi ne pas en faire votre métier ?XMLfr n'est heureusement pas le seul site où l'on parle de XML. Découvrez les autres grâce à XMLfr et à l'ODP.Les partenaires grâce auxquels XMLfr peut se développer.Pour tout savoir sur XMLfr.XMLfr sans fil, c'est possible !Pour ceux qui veulent vraiment en savoir plus sur XML.L'index du site.
 Commentaires et questions non techniques.Commentaires et questions techniques.

 
Cliquez ici.

From: jdero (jdero@ifrance.com)
Date: 03/02/2003 - 12:30


Bonjour,

Encore merci à tous ceux qui m'ont aider pour la résolution de ce petit
problème.

Je donne comme prévu le code source qui permet :
- dans un 1er temps d'extraire et d'afficher une partie des
renseignements d'un xml (xslt classique)
- dans un 2e temps de retourner dans le xml, d'extraire d'autre
renseignements et de les afficher dans un popup, ou une autre page html…

-----------------------------------
LE FICHIER XML : NOM_DU_XML.XML
-----------------------------------
Il est de la forme :

<?xml version="1.0" encoding="iso-8859-1"?>
<NOM_ROOT>
        <NOM_01>
                <KEY>01</KEY>
                <NODE_A>CONTENU 01</NODE_A>
                <NODE_B>CONTENU 02</NODE_B>
                <NODE_C>CONTENU 03</NODE_C>
                <NODE_D>CONTENU 04</NODE_D>
                <NODE_E>CONTENU 05</NODE_E>
                ...
                <LIEN>CONTENU LIEN</LIEN>
        </NOM_01>
        <NOM_01>
                <KEY>02</KEY>
                <NODE_A>CONTENU 05</NODE_A>
                <NODE_B>CONTENU 06</NODE_B>
                <NODE_C>CONTENU 07</NODE_C>
                <NODE_D>CONTENU 08</NODE_D>
                <NODE_E>CONTENU 09</NODE_E>
                ...
                <LIEN>CONTENU LIEN</LIEN>
        </NOM_01>
</NOM_ROOT>

-----------------------------------
LE FICHIER XSL1 : XSL1.XSL (qui permet d'afficher les 1er
renseignements)
-----------------------------------
Il est de la forme :

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
                       xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" media-type="text/html; charset=ISO-8859-1"/>
  <xsl:template match="/">
  <html>
  <head></head>

<!-- Le script suivant permet une seconde extraction des NODE_C, NODE_D
et NODE_E pour une valeur KEY donnee, dans une autre page html -->
        <SCRIPT language="javascript">
          function afficher01(id01) {
                  // chargement du fichier XML;
                var xml01 = new ActiveXObject("Microsoft.XMLDOM");
                xml01.async = false;
                xml01.load("NOM_DU_XML.XML");
                // Declaration variable nodeTodisplay=node pour lequel
id= KEY;
                var nodeToDisplay =
xml01.selectSingleNode("NOM_ROOT/NOM_01/[KEY='"+id01+"']");
                // chargement du fichier XSL;
                var xsl01 = new ActiveXObject("Microsoft.XMLDOM");
                xsl01.async = false;
                xsl01.load("XSL1.XSL");
                // Creation d'un document nouveau document
                NOUVEAU_DOC=window.open('');
                // ouverture de ce document
                NOUVEAU_DOC.document.open();
                // Ecriture dans ce document et transformation en Html;
        
NOUVEAU_DOC.document.write(nodeToDisplay.transformNode(xsl01));
                }
                                      
        </SCRIPT>
        
        <body>
                <table>
                        <tr>
                                <td>Titre NODE_A</td>
                                <td>Titre NODE_B</td>
                                <td>Titre_LIEN</td>
                        <xsl:apply-templates select="NOM_ROOT/NOM_01">
                                
                        </xsl:apply-templates>
                        </tr>
                </table>
        </body>
        </html>
</xsl:template>

<xsl:template match="NOM_ROOT/NOM_01">
        <table>
                <tr>
                        <td>
                                <xsl:apply-templates select="NODE_A"/>
                        </td>
                        <td>
                                <xsl:apply-templates select="NODE_B"/>
                        </td>
                       <td>
                                <a
href="javascript:afficher01({KEY});"><!-- Renvoi la valeur KEY au script
afficher01 -->
                                 <xsl:apply-templates select="LIEN"/>
                                 </a>
                        </td>
                </tr>
        </table>
        
        </center>

</xsl:template>
</xsl:stylesheet>

-----------------------------------
LE FICHIER XSL2 : XSL2.XSL (qui permet d'afficher les renseignements
supplémentaires)
-----------------------------------

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0"
                       xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html" media-type="text/html; charset=ISO-8859-1"/>
  <xsl:template match="/">
  <html>
  <head></head>
  
  <body>
          
  </body>
  </html>
  </xsl:template>
<xsl:template match="NOM_ROOT/NOM_01">
 <body>

        <table>
                <tr>
                        <td>
                        <xsl:apply-templates select="NODE_A"/>
                        </td>
                        <td>
                        <xsl:apply-templates select="NODE_B"/>
                        </td>
                        ...
                        <td>
                        <xsl:apply-templates select="NODE_E"/>
                        </td>
                </tr>
        </table>
</body>
</xsl:template>
</xsl:stylesheet>

Dans le XSL1.XSL, on peut afficher la nouvelle page sous forme de popup
en remplaçant le script afficher01 par :

function afficher01(id) {
                  // chargement du fichier XML;
                var xml = new ActiveXObject("Microsoft.XMLDOM");
                xml.async = false;
                xml.load("NOM_DU_XML.XML");
                // Declaration variable nodeTodisplay=node pour lequel
id= KEY;
                var nodeToDisplay =
xml.selectSingleNode("NOM_ROOT/NOM_01[KEY='"+id+"']");
                // chargement du fichier XSL;
                var xsl = new ActiveXObject("Microsoft.XMLDOM");
                xsl.async = false;
                xsl.load("XSL1.xsl");
                // Calcul emplacement du popup 1/4 hauteur et 1/2
largeur + 15 px
                var top=(screen.height)/4;
                var left=((screen.width)/2)+15;
                // Creation d'un popup
                popup=window.open("","Titre
popup","width=380,height=380,top="+top+",left="+left+",resizable=no,
location=no, menubar=no, status=no, scrollbars=no, menubar=no");
                // Affichage du popup en premier plan
                popup.window.focus();
                // ouverture du popup
                popup.document.open();
                // transformation en Html et écriture dans le popup du
xsl
                popup.document.write(nodeToDisplay.transformNode(xsl));
                }

----------------------------------
N.B.
----------------------------------

Je n'ai pas encore réussi à lancer la seconde extraction dans un DIV
(LAYER)... Si quelqu'un trouve je suis preneur.

Cordialement.

Jérôme
                

_____________________________________________________________________
Envie de discuter en "live" avec vos amis ? Télécharger MSN Messenger
http://www.ifrance.com/_reloc/m la 1ère messagerie instantanée de France

--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !

Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).

Cette liste est a votre disposition pour discuter en francais de tout sujet technique lie a XML.

Pour resilier votre abonnement, envoyez un message contenant la commande "unsubscribe" a xml-tech-request@xmlfr.org (mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)



Archive générée par hypermail 2.1.3 le 28/06/2004 - 11:06 UTC

webmaster@xmlfr.org

 

xml tech

Discussions techniques au sujet de XML.

Cette liste est à votre disposition pour discuter en français de tout sujet technique lié à XML.



Devenez rédacteur <XML>fr et contribuez au développement du xml francophone !
Les documents publiés sur ce site le sont sous licence "Open Content"
Conception graphique
  l.henriot@online.fr  

Conception, réalisation et hébergement