Phil,
I would change your XSP to this:
<xsp:page
           language="java"
           xmlns:xsp="http://apache.org/xsp";
           xmlns:xsp-request="http://apache.org/xsp/request/2.0";
           xmlns:xsp-response="http://apache.org/xsp/response/2.0";>
     <xsp:logic>
         String person = null;
     </xsp:logic>
        <html>
                <title>The favorite colour page - Yay"</title>
                <xsp:logic>
                                person = <xsp-request:get-parameter name="person"/>;
                 </xsp:logic>
                 <xsp:expr>person</xsp:expr> has a favorite colour! It is 
        <person-colour><xsp:expr>person</xsp:expr></person-colour>
        </html>
</xsp:page>

And then in your stylesheet do this:
<xsl:template match="person-colour">
        <!-- Select the person, somehow -->
        <xsl:variable name="selectedPerson" 
        select="document('people.xml',.)/people/person[name='current()']"/>
        <!-- return their favorite colour, somehow  -->
        <xsl:value-of select="$selectedPerson/favoriteColour">
</xsl:template>


This is untested (of course ;-)


Hth,
Christian



On Thu, Oct 25, 2001 at 09:57:26AM +1000, Phil Blake wrote:
> I am missing something when it comes to getting and passing request 
> arguments. I've looked at the cocoon examples, and although my test 
> example appears to match the cocoon one in every way there is obviously 
> something fundamental missing.
> 
> I think I'm pretty close. :) If anyone could help me get past this 
> misunderstanding it would be much appreciated.
> 
> My example scenario allows the user to enter a URL like the following: 
> http://hostname/example/colour.html?person=Phil%20Blake
> The result would be a HTML page with the person's favorite colour.
> 
> In the sitemap I added a generic matcher that matches anything .html and 
> returns the corresponding xsp. I figured (as opposed to read anywhere in 
> documentation) that I needed to include the use-request-parameters and 
> use-browser-capabilities-db parameters - I don't know why I want them, 
> just that they appeared in the cocoon sitemap.
>       <!-- Match *.html and map to *.xsp -->
>               <map:match pattern="**.html">
>                       <map:generate type="serverpages" src="{1}.xsp"/>
>                       <map:transform src="Example.xsl">
>                                  <map:parameter 
> name="use-request-parameters" value="true"/>
>                                  <map:parameter 
> name="use-browser-capabilities-db" value="true"/>
>                       </map:transform>
>                       <map:serialize/>
>               </map:match>
> 
> The requested xsp page looks like this. (colour.xsp)
> <xsp:page
>            language="java"
>            xmlns:xsp="http://apache.org/xsp";
>            xmlns:xsp-request="http://apache.org/xsp/request/2.0";
>            xmlns:xsp-response="http://apache.org/xsp/response/2.0";>
>      <xsp:logic>
>          String person = null;
>      </xsp:logic>
>       <html>
>               <title>The favorite colour page - Yay"</title>
>               <xsp:logic>
>                               person = <xsp-request:get-parameter name="person"/>;
>                </xsp:logic>
>                <xsp:expr>person</xsp:expr> has a favorite colour! It is 
> <person-colour/>
>       </html>
> </xsp:page>
> 
> I then have a half/broken stylesheet that is supposed to select the 
> person named in the URL person path arg. Then return their favorite 
> colour. However, as you'll notice, I can't see how to get from the first 
> line, to the second one. I assume the variable selectedPerson contains a 
> person node. (I don't know 'cause I can't make it work).
> However, I have no idea how to use that variable to retrieve the colour.
> XSL Stylesheet:
> <xsl:template match="person-colour">
>       <!-- Select the person, somehow -->
>       <xsl:variable name="selectedPerson" 
> select="document('people.xml',.)/people/person[name='$person']"/>
>       <!-- return their favorite colour, somehow  -->
>       <xsl:value-of select="$selectedPerson/favoriteColour">
> </xsl:template>
> 
> 
> 
> XML External Content (people.xml)
> <people>
>       <person>
>               <name>Phil</name>
>               <favoriteColour>blue</favoriteColour>
>       </person>
>       <person>
>               <name>Arthur</name>
>               <favoriteColour>yellow</favoriteColour>
>       </person>
> </people>
> 
> 
> Thanks for your help. Have fun,
> 
> Phil
> 
> 
> ---------------------------------------------------------------------
> Please check that your question has not already been answered in the
> FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>
> 
> To unsubscribe, e-mail: <[EMAIL PROTECTED]>
> For additional commands, e-mail: <[EMAIL PROTECTED]>

---------------------------------------------------------------------
Please check that your question has not already been answered in the
FAQ before posting. <http://xml.apache.org/cocoon/faqs.html>

To unsubscribe, e-mail: <[EMAIL PROTECTED]>
For additional commands, e-mail: <[EMAIL PROTECTED]>

Reply via email to