Re: [xsl] Is there any XSLT debugger stepping in subexpressions of a complex XPath expression? (Was: Re: [xsl] XPath (and other W3C drafts))

Subject: Re: [xsl] Is there any XSLT debugger stepping in subexpressions of a complex XPath expression? (Was: Re: [xsl] XPath (and other W3C drafts))
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Wed, 16 Dec 2009 12:57:00 -0800
Ken,

I get good tracing data, however, instead of this (just an example):

"for $x in .

              return
                 if ($x//y)
                    then $x//z
                    else '42'"


The code is now unreadable  :(     :

"for $x in .
                    return
                       if (trace(trace($x, '$x = ')//y,
                                 '$x//y = ')
                           )
                           then trace($x//z, '$x//z =')
                           else trace('42', 'else 42')
            "

Cheers,
Dimitre

On Wed, Dec 16, 2009 at 12:45 PM, Dimitre Novatchev
<dnovatchev@xxxxxxxxx> wrote:
> Thanks a lot, Ken,
>
> I will try this.
>
>
> Cheers,
> Dimitre
>
> On Wed, Dec 16, 2009 at 10:10 AM, G. Ken Holman
> <gkholman@xxxxxxxxxxxxxxxxxxxx> wrote:
>> At 2009-12-16 09:11 -0800, Dimitre Novatchev wrote:
>>>
>>> To shift to a what I consider a very important, related topic:
>>>
>>> It has been many years since I have adopted writing complete programs
>>> as one XPath expressions, something like this:
>>> ...
>>> Now this has been facilitated even further by providing "let
>>> expressions" in XPath 2.1. I will never have to need to define a
>>> separate xsl:variable whose value is a sequence -- this was not
>>> possible without having let expressions in XPath.
>>>
>>> However, I cannot find adequate debugger support for this style of
>>> programming.
>>
>> Have you considered simply wrapping sub-expressions with trace() since
>> trace() simply returns the first argument as its return value?
>>
>>> The whole program above is treated as one single statement
>>
>> I tell my students this is a safe way to debug their complex expressions
>> without disturbing the logic of the XPath expression (except for injecting
>> the syntax)
>>
>> I hope this helps.
>>
>> . . . . . . . . . . . Ken
>>
>> --
>> UBL and Code List training: B  B  B Copenhagen, Denmark 2010-02-08/10
>> XSLT/XQuery/XPath training after http://XMLPrague.cz 2010-03-15/19
>> XSLT/XQuery/XPath training: B  San Carlos, California 2010-04-26/30
>> Vote for your XML training: B  http://www.CraneSoftwrights.com/s/i/
>> Crane Softwrights Ltd. B  B  B  B  B http://www.CraneSoftwrights.com/s/
>> Training tools: Comprehensive interactive XSLT/XPath 1.0/2.0 video
>> Video lesson: B  B http://www.youtube.com/watch?v=PrNjJCh7Ppg&fmt=18
>> Video overview: B http://www.youtube.com/watch?v=VTiodiij6gE&fmt=18
>> G. Ken Holman B  B  B  B  B  B  B  B  mailto:gkholman@xxxxxxxxxxxxxxxxxxxx
>> Male Cancer Awareness Nov'07 B http://www.CraneSoftwrights.com/s/bc
>> Legal business disclaimers: B http://www.CraneSoftwrights.com/legal
>>
>>
>
>
>
> --
> Cheers,
> Dimitre Novatchev
> ---------------------------------------
> Truly great madness cannot be achieved without significant intelligence.
> ---------------------------------------
> To invent, you need a good imagination and a pile of junk
> -------------------------------------
> Never fight an inanimate object
> -------------------------------------
> You've achieved success in your field when you don't know whether what
> you're doing is work or play
> -------------------------------------
> I enjoy the massacre of ads. This sentence will slaughter ads without
> a messy bloodbath.
>



--
Cheers,
Dimitre Novatchev
---------------------------------------
Truly great madness cannot be achieved without significant intelligence.
---------------------------------------
To invent, you need a good imagination and a pile of junk
-------------------------------------
Never fight an inanimate object
-------------------------------------
You've achieved success in your field when you don't know whether what
you're doing is work or play
-------------------------------------
I enjoy the massacre of ads. This sentence will slaughter ads without
a messy bloodbath.

Current Thread