Subject: Re: [xsl] Finding Any Occurrance From: "Jay Bryant" <jay@xxxxxxxxxxxx> Date: Fri, 1 Sep 2006 14:15:33 -0500 |
Hi, Bob, A trick that you'll quickly master is creating what I call an "anchor variable" whenever you need to hang on to the current context. Consider the following block of XSLT: <xsl:template match="widget"> <xsl:variable name="this-context" select="." <xsl:for-each select="/doc/some-other-widget"> <!-- Get the value of the current context --> <xsl:value-of select="."/> <!-- Get the value of the saved context --> <xsl:value-of select="$this-context"/> </xsl:for-each> </xsl:template> HTH Jay Bryant Bryant Communication Services ----- Original Message ----- From: "Bob Portnell" <simply.bobp@xxxxxxxxx> To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx> Sent: Friday, September 01, 2006 1:35 PM Subject: Re: [xsl] Finding Any Occurrance > It does indeed help! Sorry I was unclear, where I was. $matcher is not > containing a result tree fragment, near as my result document tells me > ... value-of $matcher gives me the nice string I want to search > against. (I'm in XSLT 2.0, as I ought to have said and didn't.) > > It turns out my problem is actually about context. I'm inside a > for-each loop at that point, with that loop's context pointing out > into the outside document. I need to get myself back into the source > document somehow. Ew. Am I going to have to explicitly call the > document every time I want something from it? > > Happy to take more advice, > > Bob P > simply.bobp@xxxxxxxxx > > On 9/1/06, Abel Online <abel.online@xxxxxxxxx> wrote: > > Hi Bob, > > > > It'd be informative to know what you mean with "doesn't work". Do you > > mean that there's no match? Or do you mean that the result is different > > than from what you expected? > > > > The expression //title will retrieve all the title nodes. Unless all > > these titles together match your $matcher, you will have a true match > > (and I think this depends on the XSLT version you use, because in XSLT > > 1, I think $matcher contains a result tree fragment, which will not > > match). If what you are after is that the text of the titles should be > > matched against $matcher, you may try the following:. > > > > <xsl:if test="//title[. = $matcher]"> ... </xsl:if> > > > > In which case the test will be true if at least one of the title tags > > contains the text in $matcher. Perhaps this is even better > > > > <xsl:if test="//title[normalize-space(.) = normalize-space($matcher)]"> > > ... </xsl:if> > > > > Hope this helps, > > > > Cheers, > > > > Abel Braaksma > > http://abelleba.metacarpus.com > > > > > > Bob Portnell wrote: > > > (Another baby question, but at least it's on-topic) > > > > > > I have (successfully!) pulled some content from an outside file (and > > > hidden it in the variable $matcher). I now want to look through my > > > input file to see if that content is in any <title> child, anywhere, > > > so I know if it's worth carrying on processing for this content. But > > > > > > <xsl:if test="//title = $matcher"> > > > > > > doesn't work. What have I overlooked? > > > > > > (US correspondents, have a great holiday weekend!) > > > > > > Bob P > > > simply.bobp@xxxxxxxxx
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Finding Any Occurrance, Bob Portnell | Thread | Re: [xsl] Finding Any Occurrance, Wendell Piez |
Re: [xsl] Retrieving top-level attr, Wendell Piez | Date | Re: [xsl] Finding Any Occurrance, Wendell Piez |
Month |