Re: "self" axis for an attribute context node
> I thought that the following XPath steps are equivanent: > > something[name()='lalala'] > something[self::lalala] > > However, it isn't so. No, over on xsl-list we regularly have to steer people towards using self:: (which is namespace-aware) rather than testing name() (which is not) so even for elemnets (when they may both work in some cases) self:: is preferable. For attributes (and other node types) self:: doesn't work at all as the principle node type is element, so @*[self::type] means select all attributes that are element nodes with name type, which is empty. This is unfortunate as it means in XSLT1 to say "all attributes except xlink:href" you are more or less led to use @*[not(name()='xlink:href')] which forces you to fix a prefix, or to use local-name() and namespace-uri and test the namepsace URI explictly) In Xpath2 you can say @* except @link:href which is a bit more readable, and safe for other prefixes. David
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format