begin process at 2012 05 28 02:15:53
  Trouver un code source :
 
dans
 
Accueil > Forum > 

ASP.NET

 > 

WebForms

 > 

Autre

 > 

Menu xml+xslt


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Menu xml+xslt

jeudi 8 juin 2006 à 11:37:38 | Menu xml+xslt

Pkpo

Bonjour, j'ai fait un menu en xml que je transforme en html grace à du xslt :
Mon fichier xml:

<?xml version="1.0" encoding="utf-8" ?>
<Map>
  <NoeudP menu="ssmenu0" title="Navigation">Navigation
    <NoeudS url="Accueil.aspx">Accueil</NoeudS>
    <NoeudS url="Contact.aspx">Contact</NoeudS>
  </NoeudP>

  <NoeudP menu="ssmenu1" title="Menu1">Menu1
    <NoeudS url="blabla1.aspx" >Notre Offre</NoeudS>
    <NoeudS url="Procede.aspx">Procede</NoeudS>
  </NoeudP>

  <NoeudP menu="ssmenu2" title="Menu2">Menu2
    <NoeudS url="blabla2.aspx">Notre Offre</NoeudS>
    <NoeudS url="Procede.aspx">Procede</NoeudS>
  </NoeudP>

  <NoeudP menu="ssmenu3" title="Menu3"> Menu3
    <NoeudS url="blabla3.aspx">Notre Offre</NoeudS>
    <NoeudS url="Procede.aspx">Procede</NoeudS>
  </NoeudP>
</Map>

Mon fichier xsl :
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:template match="/">
    <xsl:for-each select="Map/NoeudP">
      <p class="menu">
        <a><xsl:attribute name="href">javascript:menuxaxa('<xsl:value-of select="@menu" />')</xsl:attribute>
          <xsl:value-of select="@title" />
        </a>
      </p>
      <ul class="ssmenu" style="display:block;">
        <xsl:attribute name="id">
          <xsl:value-of select="@menu" />
        </xsl:attribute>
        <xsl:for-each select="NoeudS">
          <li>
            <a><xsl:attribute name="href"><xsl:value-of select="@url" /></xsl:attribute>
              <xsl:value-of select="."/>
            </a>
          </li>
        </xsl:for-each>
      </ul>
    </xsl:for-each>
  </xsl:template>
</xsl:stylesheet>

Et au final, dans ma page je mets ceci :

<asp:Xml ID="Xml1" runat="server" DocumentSource="~/XMLFile.xml" TransformSource="~/XSLTFile.xsl"></asp:Xml>

Donc jusqu'ici tout va bien, la transformation se fait bien, mais j'aurais voulut pouvoir indiquer à l'utilisateur sur quelle page il se trouve,  en faisant un <li class="selected">pour la page selectionnée, puis avec les modifs qui vont bien en css. Et donc j'aurais voulut savoir comment faire. Recuperer l'url courante ok mais comment faire ? Dire à xslt de modifier en conséquence ? parcourir le fichier xml en comparant les url avec l'url courante, le modifier et faire un if(suivant Propriété du NoeudP) dans le xslt ? Voilà, c'est la première fois que je touche à du xml (pareil pour l'asp.net :) et je sais trop comment m'y prendre..... En vous remerciant d'avance, bonne journée !
jeudi 8 juin 2006 à 13:53:27 | Re : Menu xml+xslt

jesusonline

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
Bonjour,

je pense que : http://www.aspfr.com/codes/EXECUTER-SCRIPT-VB-NET-LORS-TRANSFORMATION-XSLT_34008.aspx devrait t'aider pour récuperer l'url courante utilise

system.web.httpcontext.current.request.url


Cyril - MVS - MCP
jeudi 8 juin 2006 à 14:19:24 | Re : Menu xml+xslt

Pkpo

Ok, je savais pas qu'on pouvait faire ça, la prochaine fois je serais plus curieux en mattant les codes sources :). Pour ceux que ça interresse j'ai trouvé ça aussi : http://www.codeproject.com/aspnet/xsltmenu.asp. Bon j'vais tester tout ça et merci encore !
mardi 13 juin 2006 à 20:47:16 | Re : Menu xml+xslt

Pkpo

Je reviens pour mettre la solution que j'ai prise, j'ai créé un paramètre dans le fichier xslt que je modifie dans le code behind de ma master page.

Dans masterpage.master, dans le Page_Load :

string lurl = System.Web.HttpContext.Current.Request.RawUrl.ToString();
        XsltArgumentList xal = new XsltArgumentList();
        xal.AddParam("currenturl","", lurl);
        Xml1.TransformArgumentList = xal;

et dans le fichier xslt on rajoute :

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="currenturl" />
......
 <xsl:for-each select="NoeudS">
          <xsl:choose>
            <xsl:when test="@url=$currenturl">

              <li><xsl:attribute name="id">selec</xsl:attribute>
                <xsl:value-of select="."/>
              </li>
            </xsl:when>
            <xsl:otherwise>

              <li>
                <a style="display:block">
                  <xsl:attribute name="href">
                    <xsl:value-of select="@url" />
                  </xsl:attribute>
                  <xsl:value-of select="."/>
                </a>
              </li>
        </xsl:otherwise>
      </xsl:choose>

    </xsl:for-each>

......

Voilà. J'ai essayer en executant du code .net, j'y suis parvenu mais j'ai eut quelque soucis ...... :
http://www.microsoft.com/france/communautes/webnews/msdn/default.mspx?dg=microsoft.public.fr.dotnet.aspnet&lang=fr&cr=FR&r=faf84066-da40-49ce-b831-4725688265a1
Bonne soirée à tous.


Cette discussion est classée dans : fichier, menu, xml, offre, xslt


Répondre à ce message

Sujets en rapport avec ce message

problème xml et xslt [ par c_ensias ] Bonjour à tous,J'ai un fichier xml dont j'ai appliqué un filtre xslt pour en extraire des données.Je voudrais que la sortie soit un fichier XML qui re problème xml et xslt [ par c_ensias ] Bonjour à tous et à toutes,J'utilise un filtre xslt pour extraire des données d'un fichier source xml.Mon problème est le suivant : La sortie du filtr asp net+There are multiple root elements. [ par jimmy69 ] Bonjour,je bosse avec c# 1.1 webform etj'essayes en vain d'applique une transformation xslt sur un fichier xml issue d'un dataset afin d'obtenir un fi xslt [ par awata ] Bonjour, svp j'ai besoin d'aide j' ai pas trouver de documents pour la transformation d'un fichier xml vers un fichier xml .Au fait, je veux transform Transformation fichier exel en xml via XSLT [ par stephsk09 ] Ma question se trouve en grand partie dans le titre...j'aimerai avoir quelque information sur comment procéder pour transformer un fichier excel en XM DataSet Typé --> XML utilisant XSLT [ par stephsk09 ] Comment transformer un dataset en un fichier XML devant respecter la structure d'un fichier XSLT ???Merci d'avance Problème de chargement d'un fichier XML :s [ par khalid220v ] Je suis entrain de développer une application web qui va aller charger un fichier XML présent dans le répertoire App_Data qui est évidement présent d Format date xslt... [ par stephsk09 ] Bonjour, voici mon problème.en sauvegardant un fichier XML depuis un dataset, et en sauvegarder celui ci au format xls (pour l'ouvrir dans excel) je c Lire un fichier XML en asp pur [ par TheBuzzer ] J'ai un fichier XML à plusieurs niveaux et je n'arrive pas à lire le contenu, on me retourne constamment des erreurs d'objet manquant ou [] en trop!?


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales