|
Subject: RE: [xsl] Xpath and Ranges From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Fri, 4 Aug 2006 15:07:12 +0100 |
> Here is the template where I am trying to grab a set of nodes
> in order to wrap them in a parent node (since this is docbook
> Im trying to wrap things in sect1)
>
> <xsl:template match="for $T1 in (//title)[1], $T2 in
The match attribute of xsl:template must be a pattern, it can't be a
generalized XPath expression.
Use xsl:apply-templates to select the nodes that you want to process, use
xsl:template to define what processing to apply to the selected nodes.
I suspect that what you want might be something like:
<xsl:template match="/">
<sect1>
<xsl:copy-of select="for $T1 in (//title)[1], $T2 in (//title)[2]
return ($T1, //*[. >> $T1 and . << $T2])"/>
</sect1>
</xsl:template>
but not quite: because if there's an X element that passes the test, then
the children of X will probably pass it too, and if you copy X then you
don't want to copy its children, or they'll end up in the output twice.
So: you asked for an XPath expression that selected all the nodes between
the two titles, but I don't think that's what you really wanted. It might be
best to explain the real problem that you're trying to solve.
Michael Kay
http://www.saxonica.com/
> (//title)[2] return ($T1, //*[. >> $T1 and . << $T2])">
> <xsl:element name="sect1">
> <xsl:apply-templates/>
> </xsl:element>
> </xsl:template>
>
> I've installed Saxon 8.7.3N, and use XMLSpy with this commandline:
> c:\saxon\Transform.exe -o %2 %1 %3
>
> The error I get is:
>
> XSLT Pattern syntax error at char 0 on line 83 (the template
> above), In {for $}: Unexpected token in patter, found "for"
> Failed to compile stylesheet, 1 error detected.
>
> Hope that helps..let me know if I can supply any more information.
>
> FYI the material Im apply this too is going to be open to the
> public (its actually apart of the OGL, open gaming license).
> So, Im trying to learn how to apply XPATH.
>
> Thanks!
>
> David White
>
> -----Original Message-----
> From: Michael Kay [mailto:mike@xxxxxxxxxxxx]
> Sent: Friday, August 04, 2006 8:35 AM
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: RE: [xsl] Xpath and Ranges
>
> >
> > Could it be my software? XMLSpy 2006?
> >
>
> Does your xsl:stylesheet element specify version="2.0"? IIRC,
> XMLSpy invokes a 2.0 processor when you specify
> version="2.0", and a 1.0 processor otherwise.
>
> Michael Kay
> http://www.saxonica.com/
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| RE: [xsl] Xpath and Ranges, David White | Thread | RE: [xsl] Xpath and Ranges, David White |
| RE: [xsl] XPath 2.0 Datatypes names, tom tom | Date | RE: [xsl] XPath 2.0 Datatypes names, Michael Kay |
| Month |