xsl-list
[Top] [All Lists]

Re: [xsl] Can a single XPath statement duplicate the functionality of this verbose <xsl:choose> statement?

2011-10-23 20:31:07
At 2011-10-23 18:21 -0700, Mark wrote:
One more small question: I am confused by brackets in XPath;

The brackets specify a predicate used to keep or toss the nodes tested in the step from the next step of the location path.

what is the difference between
Location[name(@*)]

That is atypical. It is addressing the child element <Location> and only keeping it if there is an attribute, because the name() function returns a non-empty string. An empty string tests as false(), a non-empty string tests as true(). One wouldn't write the above because that particular predicate test is nonsensical in this situation (but not syntactically in error).

Location/@*

That addresses the attributes of the child element <Location>.

Location[@*]

That addresses the child element <Location> but only keeps it if the element has any attributes. If the element doesn't have attributes, the XPath expression stops getting evaluated.

Chapter 3 section 2 of my XSLT book (free preview download on my web site) describes the syntax of XPath expressions in gory detail.

I hope this helps.

. . . . . . . . Ken


--
Contact us for world-wide XML consulting and instructor-led training
Crane Softwrights Ltd.            http://www.CraneSoftwrights.com/s/
G. Ken Holman                   mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Google+ profile: https://plus.google.com/116832879756988317389/about
Legal business disclaimers:    http://www.CraneSoftwrights.com/legal


--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>