cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gueye weuz <ogn3...@yahoo.fr>
Subject Re: processToDOM()?
Date Thu, 09 Feb 2006 16:51:47 GMT
J'ai essayé le bout de code mais il m'affiche null.
J'ai vérifié directement sur le navigateur en appelant
le pipeline avec la même valeur pour le parametre qui
m'affiche le code xml attendu à savoir 
<documents>
<document id="xxx"/>
</documents>
 
Ce que je veux  récupérer la valeur "xxx".

--- Sylvain Wallez <sylvain@apache.org> a écrit :

> gueye weuz wrote:
> > J'ai une collection de documents sur exist. A
> chaque
> > document est associé un identifiant (mon attribut)
> > généré automatiquent par exist. Je veux à partir
> du
> > nom du document (récupéré depuis un formulaire)
> > retrouvé dans ma base l'identidiant qui lui est
> > associé.
> >  Pour cela j'ai procédé comme suit:
> > 1. Récupérer le nom du document dans le flowscript
> >  var paramNomDoc =
> form.getChild("nomDoc").getValue();
> >
> > 2. Ensuite je fais une requete xquery ds ma base:
> > cocoon.sendPageAndWait("getUserId.xq",{nom:
> paramNomDoc});
> >
> > le pipeline:
> > <map:match pattern="getDocId.xq">
> > <map:generate type="xquery"
> src="xquery/getDocId.xq" >
> > <map:parameter name="nom" value="{flow-attr:nom}"
> />
> > </map:generate>
> > <map:serialize type="xml"/>         
> > </map:match>
> >
> > fichier xq:
> >
> > xquery version "1.0" encoding "ISO-8859-1";
> >
> > <identifiants>
> > {
> > for $doc in
> collection("/societe/document")/document
> > where $doc/nom = $nom 
> > 		return
> > 			<identifiant>
> > 				{$doc/@id}				
> > 			</identifiant>
> > }
> > </identifiants>
> >
> >
> > 3. J'affiche la valeur de l'id par:
> > print(cocoon.request.getAttribute("id"));
> >   
> 
> ??? Il n'y a rien dans le code précédent qui met une
> valeur dans cet 
> attribut !
> 
> > Je crains aussi que l'exécution de mon flowscript
> soit
> > arrétée apres le sendPageAndWait càd qu'il
> m'affiche
> > sur le navigateur le fichier xml.
> >   
> 
> Effectivement. cocoon.sendPageAndWait envoie le
> résultat du pipeline au 
> navigateur et suspend le flowscript.
> 
> > Est ce que cette démarche est bonne?
> >   
> 
> Pas du tout :-)
> 
> Ta XQuery est ce que je qualifie de "pipeline
> applicatif" : c'est de la 
> logique métier implémentée sous la forme d'un
> pipeline parce que les 
> sources de données et/ou la nature du traitement s'y
> prêtent bien. Un 
> point important est que ce type de pipeline ne
> constitue *pas* la 
> réponse à l'utilisateur, et ne doit donc pas être
> utilisé dans un 
> cocoon.sendPage ou un cocoon.sendPageAndWait.
> 
> La classe PipelineUtil est précisément là pour
> faciliter l'utilisation 
> de ces "pipelines applicatifs", en permettant
> d'appeler un pipeline avec 
> des paramètre, et en récupérant sont résultat sous
> différentes formes 
> (stream, SAX et DOM).
> 
> Voici qq chose qui devrait mieux marcher :
> 
>   var pipeUtil = 
>
cocoon.createObject(org.apache.cocoon.components.flow.util.PipelineUtil);
>   var doc =
> pipeUtil.processToDOM("getUserId.xq",{nom:
> paramNomDoc});
>   var list = doc.documentElement.childNodes;
>   for (var i = 0; i < list.length(); i++) {
>       var child = list.item(i);
>       print(child.firstChild.nodeValue);
>   }
> 
> Sylvain
> 
> -- 
> Sylvain Wallez                        Anyware
> Technologies
> http://bluxte.net                    
> http://www.anyware-tech.com
> Apache Software Foundation Member     Research &
> Technology Director
> 
> 
>
---------------------------------------------------------------------
> Liste francophone Apache Cocoon --
> http://cocoon.apache.org/fr/
> Pour vous desinscrire :
> mailto:users-fr-unsubscribe@cocoon.apache.org
> Autres commandes :
> mailto:users-fr-help@cocoon.apache.org
> 
> 



	

	
		
___________________________________________________________________________ 
Nouveau : téléphonez moins cher avec Yahoo! Messenger ! Découvez les tarifs exceptionnels
pour appeler la France et l'international.
Téléchargez sur http://fr.messenger.yahoo.com

---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message