RE: [xsl] debugging source line numbers

Subject: RE: [xsl] debugging source line numbers
From: "Michael Kay" <michael.h.kay@xxxxxxxxxxxx>
Date: Fri, 24 Jan 2003 08:45:23 -0000
FWIW, Saxon has an extension function saxon:line-number() that gives the
line number of the context node in the source document (provided you run
Saxon with the -l option).

Michael Kay
Software AG
home: Michael.H.Kay@xxxxxxxxxxxx
work: Michael.Kay@xxxxxxxxxxxxxx 

> -----Original Message-----
> From: owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx 
> [mailto:owner-xsl-list@xxxxxxxxxxxxxxxxxxxxxx] On Behalf Of S Woodside
> Sent: 22 January 2003 05:26
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] debugging source line numbers
> 
> 
>   The FAQ is pretty thin on debugging tips, so I thought I'd 
> share this 
> that I came up with. the gurus on the list can probably improve it ;-)
> 
> I wanted to include a line number in the output that would take me to 
> the line in the source XML that is being processed. It's 
> tricky because 
> the processor doesn't count close tags in the various number/count 
> functions, but I came up with this xslt. In order to make it work you 
> have to "pretty-print" your source document (like in BBEdit, 
> format as 
> "hierarchical") to have one node / tag  text per line. This 
> trick puts 
> me within about +/- 20 lines of the right line, in my 2000 
> line source 
> file.
> 
>    <xsl:text>{{{</xsl:text>
>    <xsl:value-of select="(count(preceding::* | ancestor::*) * 
> 2 * 9 div 
> 10 + 1" />
>    <xsl:text>}}}</xsl:text>
> 
> I multiply the result of the count by 2 because every node 
> has a close 
> tag, thus doubling the number of lines. Except for the nodes 
> that don't 
> have close tags, so I multiply by a "constant" that should be roughly 
> the ratio of nodes with close tags to nodes w/o close tags, 
> 9/10 seemed 
> to work after fiddling. I can't remember what the +1 does ;-)
> 
> simon
> ---
> www.simonwoodside.com
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread