begin process at 2010 02 10 11:09:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Autre

 > 

Proble Nvelocity


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

Proble Nvelocity

mardi 27 mai 2008 à 14:30:28 | Proble Nvelocity

tamcheiktt



Bonjour, je travaille sur les Templaters StringTemplate, NVeloity et SharpTemplate en fin je devrai choisir un parmi les trois pour développer un projets, j'arrvie avec les trois à realiser une exempel

mon probléme est le suivant:

je dervrai mettre toutes les templates dans le même fichier

en suite charger un template via son id :

<?xml version="1.0" encoding="utf-8" ?>
<templates>
  <template id="1">
    <title>$title$</title>
    $users:{
      <name>$it.name$</name>
      <age>$it.age$</age>
    }$
  </template>

  <template id="2">
    <title>$title$</title>
    $users:{
      <name>$it.name$</name>
      <age>$it.age$</age>
    }$
  </template></templates>

j'arrive à charger tout le contenu du fichier pas chaque template, merci de repondre et de donner tous lines jugés utils

merci

mardi 27 mai 2008 à 14:30:47 | Re : Proble Nvelocity

tamcheiktt



Bonjour Stagires

mercredi 28 mai 2008 à 10:27:49 | Re : Proble Nvelocity

Liverion

Rien compris a la question, ni à la reponse, si tu pouvais eclairer un peu ma lanterne:
Quand à ce que tu dois utiliser, je n'ai pratiqué que rapidement le Velocity, donc je peux toujours essayer de t'aider (si je comprends la question donc ^^ )

(Et sinon vu que Velocity est un langage a part entière et que pas vraiment de rapport avec C# il aurait été mieux vu de poster dans le bar, en plus tu aurais eu plus d'utilisateurs qui l'auraient vu et donc plus de conseils potentiels  ;) )






On peut écrire francais sur un clavier allemand , c'est juste plus long !!!
jeudi 29 mai 2008 à 10:02:32 | Re : Proble Nvelocity

tamcheiktt

Bonjour en fait mon problème est le suivant:
Je voudrrai créer un fciheir XML pour toutes les templates que je vais utiliser
<templaes>
    <template id="1">
    <template>
    <template id="2">
    <template>
</templates>
La quetion, comment faire pour charger un seul template à partir de mon Fichier par exemple <template id="1"> sans charger tout le fciheir
merci
jeudi 29 mai 2008 à 11:07:19 | Re : Proble Nvelocity

Liverion

Réponse acceptée !
Si ton fichier contient tous les templates tu vas devoir le charger au moins un peu pour l'utiliser avec un XMLReader ou une XMLDocument je crois.

Ensuite tu pourras par exemple parcourir tous les noeuds qui sont situés directement sous ton noeud "templates" et lui dire de selectionner ton noeud avec l'id correspondante.

Ca donnerait qque chose comme :

using System.Xml;

...


private void getTemplate(string templatesFileName,int reqId)
{
            // Create an instance of XmlDocument
            XmlDocument document = new XmlDocument();

            // load in it what the "templatesFileName" contains
            document.Load(templatesFileName);

            // for eache node of the document
            foreach (XmlNode first in document.ChildNodes)
            {
                // if it is an Element and his name is "templates"
                if (first.NodeType == XmlNodeType.Element && first.Name == "templates")
                {
                    foreach (XmlNode second in first.ChildNodes)
                    {
                        // if it is an Element and his name is "template"
                        if (second.NodeType == XmlNodeType.Element && second.Name == "template")
                        {
                            //we verify that there is an id
                            if( second.Attributes.getItemNamed("id")!=null )
                             {
                                  // if the Id is good
                                  if ( second.Attributes.getItemNamed("id") == reqId )
                                  {
                                           // TODO the return of template informations
                                           break;
                                   }
                           }
                      }
                 }
}

( Bon je laisse le code, comme on est dans la rubrique C# je t'ai donné un programme pour recuperer tes infos de template XD Eventuellement tu peux toujours te recrér un XML temporaire contenant juste ton template )

Ton Velocity te sert à generer ton fichier XML ? Ou tu dois recuperer les infos du XML pour les utiliser dans ton script Velocity ?



On peut écrire francais sur un clavier allemand , c'est juste plus long !!!
jeudi 5 juin 2008 à 10:26:15 | Re : Proble Nvelocity

tamcheiktt

Réponse acceptée !
Bonjour, merci pour la réponse
c'est dans Nvelocity que je genère mes donnes :
par exemple le ficheir template.vm:<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  <head>
    <title></title>
  </head>
  <body>
    <table>
      #foreach($User in $users)
      <tr>
            <td>$User.name</td>
            <td>$User.age</td>
      </tr>
            #end
     
      </table>
     </body>
</html>
et dans une classe user:
using System;
using System.Collections.Generic;
using System.Text;

namespace TestNVlocity
{
  public class User
    {
        private String name;
        private int age;

        public String Name
        {
            get
            {
                return name;
            }
        }

        public int Age
        {
            get
            {
                return age;
            }
        }

        public User(String name, int age)
        {
            this.name = name;
            this.age = age;
        }
    }
}
dans une classe pour la liste des utilisateur
using System;
using System.Collections.Generic;
using System.Text;
using NVelocity;

namespace TestNVlocity
{
    public class UserListPage
    {
        public static User[] users = new User[] { new User("Boris", 39),
            new User("Natasha", 31),
            new User("Jorge", 25),
            new User("Vladimir", 28)};
    }
}
dans mon main :
using System;
using System.IO;
using System.Collections;
using Velocity = NVelocity.App.Velocity;
using VelocityContext = NVelocity.VelocityContext;
using ParseErrorException = NVelocity.Exception.ParseErrorException;
using MethodInvocationException = NVelocity.Exception.MethodInvocationException;

namespace TestNVlocity
{
    public class Example2
    { 
        public static void Main(String[] args)
        {
            try
            {
                Velocity.Init();
                NVelocity.Template template = Velocity.GetTemplate(@"template.vm");
                VelocityContext context1 = new VelocityContext();
                context1.Put("users", UserListPage.users);
                StringWriter writer1 = new StringWriter();
                template.Merge(context1, writer1);
                Console.Out.WriteLine(" Tester Lecontenu de notre : " + writer1.GetStringBuilder().ToString());
                Console.ReadLine();
            }
            catch (Exception e)
            {
                Console.Out.WriteLine("Problem d'initialisation de Velocity : " + e);
                Console.ReadLine();
                return;
            }

        }
    }
}
jeudi 5 juin 2008 à 10:27:50 | Re : Proble Nvelocity

tamcheiktt


donc le soucis ce que dans le fciheir .vm j'ai toutes les tmplates à générer donc comment charger l'une apèrs l'autre?
merci pour la réponse
jeudi 5 juin 2008 à 10:57:35 | Re : Proble Nvelocity

Liverion

Réponse acceptée !
Donc si j'ai bien suivi tu fais C# => Velocity => HTML , c'est ca ?
Et sinon tu vas toujours appliquer tous les templates ? Ou alors tu vas passer en parametre quelque part l'id de template à utiliser ?


~~~~~~~~~~
Les trois lois de Codes-Sources :
1) Tu lis et respecte le reglement
2) Tu pense a valider si une reponse apportée a ton probleme t'a aidé
3) Si tu ne respecte pas les 2 premières ....TU SORS !!!
~~~~~~~~
mercredi 11 juin 2008 à 11:06:59 | Re : Proble Nvelocity

tamcheiktt

Merci becps
en fait j'ai trouvé
Merci merci A+

Bonjour Stagires

samedi 14 juin 2008 à 11:56:54 | Re : Proble Nvelocity

coq

Administrateur CodeS-SourceS
"en fait j'ai trouvé"
Ca pourrait être cool de donner la solution donc, pour ceux qui vont tomber ici durant leurs recherches.



/*
coq
MVP Visual C#
CoqBlog
*/


Cette discussion est classée dans : fichier, trois, it, proble, nvelocity


Répondre à ce message

Sujets en rapport avec ce message

[C#] CopyTo => Pb de copy [ par adrien78 ] J' ai absolument besoins de récréer la fonction CopyTo en C#=> Cependant j' ai deux pb : - Le fichier copié ne peut pas être lu (érreur de copie ouvrir fichier [ par FaustVII ] je souhaiterai ouvrir un fichier a partir de mon programme (par exemple avec un bouton)j ai tenter d' utiliser file.open mais sans successi quelqu un Executer.... [ par CracK ] Je cherche à associer à un bouton par exemple la fonction qui me permetterai d'executer un fichier txt, mpg ou autres .... private void button1_Click [C#] Nom de fichier dans un textBox [ par jeffwow ] Donc, j'ouvre un fichier avec OpenFileDailog... jusque là ça va. Ensuite, je voudrais prendre le nom de ce fichier et l'envoyer dans un textBox. tex affichier le name d'un fichier dans un label [ par testicool ] ki peux me donner une fonction csharp qui me renvoie le nom d'un fichier que j'ai ouvert(System.IO.Stream strInput = openFileDialog1.OpenFile();...... *?!$... de ressources [ par Xaviou ] 'Lu à tous.J'ai un problème avec les ressources.Je voudrais compiler quelques icones avec mon éxécutable, afin de pouvoir les réutiliser lors de l'éxé compression de fichier [ par eryk17 ] bjrje cherche un script qui me permettrait de compresser un fichiermerci acces fichier [ par bloos ] salut a tous,je voudrais savoir comment fait-on pour lire un caractère saisi situé dans un fichier .Merci pour votre aide Problème d'Upload de fichier Image [ par pchanet ] Bonjour à tous,J'ai un problème avec le code de téléchargement d'une image. Lorsque j'active le téléchargement, une erreur s'affiche :->> "La référenc fonction pour renomer un fichier [ par neopascal ] Je voudrais créer une fonction qui permettra de changer de nom à un fichier grace a une interface graphique qui contient une zone de saisi s'apellant


Nos sponsors


Sondage...

Comparez les prix


HTC Magic

Entre 429€ et 429€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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,936 sec (3)

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