You're most welcome, Ena ! I'm glad it worked for you.

You should consider putting the ListItem part of the HTML into a
separate template and calling that template along with parameters to
account for the differences between the different rendering. Also, I
would advise you to consider a different flow compared to applying if-
else constructs to account for each category.

On Jan 13, 3:41 am, Ena <[email protected]> wrote:
> IT WORKED!!! Thanks Cerebrus!!!! :)
> I was trying to play around with xsl:variable before, but couldn't
> figure out how to use it along with xsl:param in this context - I
> learned something new! I'm also looking into xsl:call-template...
> Thanks again for the help!
> -Ena
>
> On Jan 12, 3:17 pm, Ena <[email protected]> wrote:
>
>
>
> > " Ignoring the fact that your XSL appears to do the same thing if the
> > Category matches and if it doesn't match..."
>
> > - Ha ha!... oops! -  I forgot to mention that this is a scaled down
> > version of the code - I have about 5 other categories that the
> > "<xsl:when test="$myXSLcategory='f' ">blah blah blah <xsl:when>"
> > statement tests for. If no conditions are met, the results default to
> > the "f" category. It's probably kinda clunky (I'm a newbie ast XSLT).
> > If you have any suggestions on how to do this more efficiently, I'd
> > gladly try it. I'm concerned about this method of testing for
> > categories getting too cumbersome as I add new categories over time.
>
> > THANKS for the initial help as well! - I'll try it now and keep you
> > posted ;)
>
> > -Ena
>
> > On Jan 12, 12:44 pm, Cerebrus <[email protected]> wrote:
>
> > > Ignoring the fact that your XSL appears to do the same thing if the
> > > Category matches and if it doesn't match, this appears to be a simple
> > > case of applying the appropriate XPath to filter out nodes which match
> > > the alumniID parameter (which you would pass to the XSLT in the same
> > > way as the other parameters).
>
> > > Here's the relevant part of the (modified) XSLT :
>
> > > ---
> > > <xsl:when test="$myXSLcategory='f' ">
> > >   <xsl:variable name="numProfiles" select="alumniProfiles/profi...@id !
> > > = $alumniID]" />
> > >   <xsl:choose>
> > >     <xsl:when test="count($numProfiles) = 0">
> > >       <xsl:call-template name="NoResults" />
> > >     </xsl:when>
> > >     <xsl:otherwise>
> > >       <xsl:for-each select="$numProfiles">
> > >         <xsl:choose>
> > >           <xsl:when test="function = $myXSLmatchme">
> > >             <li>
> > >               <a>
> > >                 <xsl:attribute name="href">
> > >                   <xsl:value-of select="link"/>?ref=f
> > >                 </xsl:attribute>
> > >                 <xsl:value-of select="careerTopics/topic/title"/>
> > >                 <strong>
> > >                   &#160; -&#160;
> > >                   <xsl:value-of select="firstName"/>
> > >                   &#160;
> > >                   <xsl:value-of select="lastName"/>
> > >                 </strong>
> > >               </a>
> > >             </li>
> > >             <br />
> > >           </xsl:when>
> > >         </xsl:choose>
> > >       </xsl:for-each>
> > >     </xsl:otherwise>
> > >   </xsl:choose>
> > > </xsl:when>
> > > <xsl:otherwise>
> > > ...
> > > ...
> > > </xsl:otherwise>
>
> > > ...
> > > ...
> > > <xsl:template name="NoResults">
> > >   <p>
> > >     Sorry, No other related links at this time.
> > >   </p>
> > > </xsl:template>
>
> > > ---
>
> > > Hope this helps !
>
> > > On Jan 12, 9:09 pm, Ena <[email protected]> wrote:
>
> > > > Hi,
>
> > > > I have a webpage that contains a person's bio and profile (50 pages,
> > > > 50
> > > > profiles). On the page, below the bio, are a list of links relate to
> > > > the
> > > > current profile. The links are pulled into the page based on matching
> > > > the
> > > > variables declared in the .aspx page to the values of nodes in the
> > > > xml. If I
> > > > am using the following XSLT code to display links on the page that
> > > > are
> > > > related to the current page:
>
> > > > <xsl:param name="myXSLmatchme" select="blank"/>
> > > > <xsl:param name="myXSLcategory" select="blank"/>
> > > > <xsl:param name="alumniID" select="blank"/>
>
> > > >   <xsl:template match="/">
> > > >     <table cellpadding="20">
> > > >       <tr>
> > > >         <td>
> > > >           <ul id="relatedprofiles">
> > > >             <xsl:choose>
>
> > > >               <xsl:when test="$myXSLcategory='f' ">
> > > >                 <xsl:for-each select="alumniProfiles/profile">
> > > >                   <xsl:choose>
> > > >                     <xsl:when test="function = $myXSLmatchme">
> > > >                       <li>
> > > >                         <a>
> > > >                           <xsl:attribute name="href">
> > > >                             <xsl:value-of select="link"/>?ref=f
> > > >                             </xsl:attribute>
> > > >                           <xsl:value-of
> > > > select="careerTopics/topic/title"/>
> > > >                               <strong>&nbsp; -&nbsp;
> > > >                     <xsl:value-of select="firstName"/>&nbsp;
> > > >                     <xsl:value-of select="lastName"/>
> > > >                     </strong>
> > > >                         </a>
> > > >                       </li>
> > > >                       <br />
> > > >                     </xsl:when>
> > > >                   </xsl:choose>
> > > >                 </xsl:for-each>
> > > >               </xsl:when>
>
> > > >               <xsl:otherwise>
> > > >                 <xsl:for-each select="alumniProfiles/profile">
> > > >                   <xsl:choose>
> > > >                     <xsl:when test="function = $myXSLmatchme">
> > > >                       <li>
> > > >                         <a>
> > > >                           <xsl:attribute name="href">
> > > >                             <xsl:value-of select="link"/>?ref=f
> > > >                             </xsl:attribute>
> > > >                           <xsl:value-of
> > > > select="careerTopics/topic/title"/>
> > > >                               <strong>&nbsp; -&nbsp;
> > > >                     <xsl:value-of select="firstName"/>&nbsp;
> > > >                     <xsl:value-of select="lastName"/>
> > > >                     </strong>                        </a>
> > > >                       </li>
> > > >                       <br />
> > > >                     </xsl:when>
> > > >                   </xsl:choose>
> > > >                 </xsl:for-each>
> > > >               </xsl:otherwise>
>
> > > >             </xsl:choose>
> > > >           </ul>
> > > >         </td>
> > > >       </tr>
> > > >     </table>
> > > >   </xsl:template>
> > > > </xsl:stylesheet>
>
> > > > ...and I am determining which links are related to the person on the
> > > > page by
> > > > matching values defined in the .aspx this way: (*"alumniID"* is a
> > > > unique
> > > > value)
>
> > > > <script runat="server">
> > > > void Page_Load () {
> > > >  string industry="Banking";
> > > >  string function="Consulting";
> > > >  string geography="United States";
> > > >  string experience="20-25 Years";
> > > >  string theme="Conducting an Effective Global Job Search";
> > > >  string keyword="";
> > > > string alumniID="0035";
> > > >  string myref="f";
> > > >  string matchme="";
> > > >                 XsltArgumentList parameters = new XsltArgumentList();
> > > > if (Request.QueryString["ref"] == null) {
>
> > > > } else {
>
> > > > myref=Request.QueryString["ref"];
>
> > > > }
>
> > > > switch(myref){
> > > > case "f":
> > > > matchme=function;
> > > >     break;
> > > > case "i":
> > > > matchme=industry;
> > > >     break;
> > > > case "e":
> > > > matchme=experience;
> > > >     break;
> > > > case "t":
> > > > matchme=theme;
> > > >     break;
> > > > case "g":
> > > > matchme=geography;
> > > >     break;
> > > > default:
> > > > matchme=function;
> > > >     break;
>
> > > > }
>
> > > > parameters.AddParam("myXSLmatchme", "", matchme);
> > > > parameters.AddParam("myXSLcategory", "", myref);
>
> > > >                 XsltProcessor1.TransformArgumentList = parameters;
>
> > > > }
>
> > > > </script>
>
> > > > How would I pull in the "alumniID" value of the current page and use
> > > > it to
> > > > exclude that profile link from the results?
>
> > > > Also, how do I display and alternate message like "No other related
> > > > links at
> > > > this time" if there are no other related links?
>
> > > > The XML:
>
> > > > <alumniProfiles>
>
> > > >   <profile id="0001">
> > > >     <firstName>Alexis</firstName>
> > > >     <lastName>Sermeno</lastName>
> > > >     <link>/alumniprofiles/profiles/sermeno.aspx</link>
> > > >     <function>Consulting</function>
> > > >     <industry>Consulting</industry>
> > > >     <yearsExperience>15-20 Years</yearsExperience>
> > > >     <geography>
> > > >       <location primary="yes">
> > > >         <continent>North America</continent>
> > > >         <country>United States</country>
> > > >         <state>Illinois</state>
> > > >         <city>Chicago</city>
> > > >       </location>
> > > >     </geography>
> > > >     <careerTopics>
> > > >       <topic>
> > > >         <theme>What's Your Story</theme>
> > > >         <title>"I went from corporate to consulting"</title>
> > > >       </topic>
> > > >     </careerTopics>
> > > >   </profile>
>
> > > > </alumniProfiles>
>
> > > > Any help would be appreciated - Thanks
>
> > > > -Ena- Hide quoted text -
>
> > > - Show quoted text -- Hide quoted text -
>
> > - Show quoted text -- Hide quoted text -
>
> - Show quoted text -

Reply via email to