Subject: Re: [xsl] conditional display of content From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx> Date: Tue, 27 May 2008 10:12:07 +0100 |
2008/5/27 Ganesh Babu N <nbabuganesh@xxxxxxxxx>: > This is the XML file: horrible sample XML fragment by the way... what's wrong with indenting it? > My requirement is to display the corresponding the role/personname in > the speaker tag. The condition is id and href should match. > > <xsl:template match="pbl:roleref> > <xsl:if test="substring-after(@href),#) = > //pbl:castmember/pbl:role/@xml:id"> > <xsl:value-of select="//pbl:castmember/pbl:role/personname"/> > </xsl:if> > </xsl:template> Your xpath needs to at least be //pbl:castmember/pbl:role[$id = @xml:id]/personname where $id is a variable defined before the select as: substring-after(@href), '#') (notice the single quotes around the hash... or "pound" sign if you speak American) or just use substring-after(current()/@href), '#') directly in the XPath. Ultimately though this should be rewritten to use a key: <xsl:key name="role-by-id" match="pbl:role" use="@xml:id"/> and then just <xsl:template match="pbl:roleref> <xsl:value-of select="key('role-by-id', substring-after(@href, '#'))"/> If the lookup value doesn't exist in the key then nothing is returned. -- Andrew Welch http://andrewjwelch.com Kernow: http://kernowforsaxon.sf.net/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] conditional display of conten, Ganesh Babu N | Thread | Re: [xsl] conditional display of co, Ganesh Babu N |
Re: [xsl] Filtering duplicate tags, Mukul Gandhi | Date | Re: [xsl] fo:instream-foreign-objec, Tony Graham |
Month |