[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Finding Any Occurrance

Subject: Re: Finding Any Occurrance
From: "Jay Bryant" <jay@xxxxxxxxxxxx>
Date: Fri, 1 Sep 2006 14:15:33 -0500
jay bryant
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:  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

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.