[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] Pipe Question
Subject: Re: [xsl] Pipe Question From: Karl Stubsjoen <kstubs@xxxxxxxxx> Date: Tue, 7 Jun 2005 21:51:41 -0700 |
So, If match is "A" and "B" like this: <match>A</match> <match>B</match> Then the following will match X who's component attributes is either an "A" or "B" value: <xsl:template select="X[@component=$match]"/> And if the parameter match is not supplied, then the following will match all X who either have or do not have a component attribute that matches match: <xsl:template select="X[@component=$match] | X[not(@component='$match')]"/> I don't understand: > <xsl:apply-templates select= > "$yourNodeSet[$match][@sComponentObjectName=$match] Specifically the first predicate $match, followed the the next predicate. I don't understand the how/why of that. Also, I question the param *default* select. I don't understand how (and using the match param as an example) to write the select in such a way that I would not be selecting the doc source. So: <xsl:template match="X"> <xsl:param name="match" select="/"/> If this above template rule aplies, but no match param has been passed, the match becomes the document source? This does not work for me... I need this select to either evaluate to the "root" of the RTF passed into match or nothing. For 2 reasons (1) XSLT1.0 requires that you supply a "select" if you plan on treating the param as a node-set later and (2) I may not know or care of the actual structure of the node-set passed. There was one more point, but it slipped my mind. If I recall, I will follow up. Thanks, Karl.. On 6/7/05, Dimitre Novatchev <dnovatchev@xxxxxxxxx> wrote: > On 6/8/05, Karl Stubsjoen <kstubs@xxxxxxxxx> wrote: > > How could I use a pipe for this predicate to specifiy the inclusion of > > ALL where $match does not exist (is empty)? > > What is "a pipe for a predicate"? > > XPath certainly does not define such thing. > > > > > [@sComponentObjectName=$match] > > > > This written out verbose would be: > > > > <xsl:choose> > > <xsl:when test="$match"> > > ... apply-templates with above predicate ... > > </xsl:when> > > <xsl:otherwise> > > ... apply-templates without above predicate ... > > </xsl:otherwise> > > </xsl:choose> > > > The abbreviated form of the above (if I understand it well) is: > > <xsl:apply-templates select= > "$yourNodeSet[$match][@sComponentObjectName=$match] > | > $yourNodeSet[not($match)] > "/> > > > Cheers, > Dimitre Novatchev
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Pipe Question, Dimitre Novatchev | Thread | [xsl] Creating <!DOCTYPE in the res, Mukul Gandhi |
Re: [xsl] parameters in XSLT 2.0, omprakash . v | Date | RE: [xsl] xsl fo: tables : column w, omprakash . v |
Month |
Keywords