At 2003-06-02 11:11 +1200, Conal Tuohy wrote:
Does "self::*@" work?
This is not a well-formed XPath expression.
And the principal node type along the self access is element, not
attribute, so this is the wrong direction to look for an answer.
At 2003-06-01 22:59 +0200, Adrian Grigore wrote:
> In other words, I am looking for an easy way to check within the
> template example if the template's match attribute is something like
>
> /somenode/@id
test="count(.|../@id)=1" is only true when the current node is an attribute
"id".
test="count(.|../self::somenode/@id)=1" is only true when the current node
is an attribute named "id" and it is attached to an element named "somenode".
> in which case it matched an attribute node or something like
>
> /somenode/somechildnode
test="self::somechildnode" is only true when the current node is the
element "somechildnode".
test="self::somechildnode/parent::somenode" is only true when the current
node is the element "somechildnode" child of the "somenode" element.
> So, is there any simple way to do this? Maybe I overlooked
> something obvious?
Simple, but not obvious.
> There is certainly no other way for me to implement this, I
> looked for
> another way for many hours already. Any help would be greatly
> appreciated! :-)
Consider that the attribute tests I have count the number of nodes in the
union of the current node and the current node's "id" attribute ... since
XPath 1.0 nodes are not duplicated in a node set, the union will only
produce a singleton node set when the current node *is* the node being
addressed.
I hope this helps.
................. Ken
p.s. for those who own our XSLT PDF book Tenth Edition, we document on
pages 192 and 193 examples of all possible testing patterns for node types
for the current node ... BTW, the Eleventh Edition should be out in a few
weeks.
--
Upcoming hands-on courses: (registration still open!)
- (XSLT/XPath and/or XSL-FO) North America: June 16-20, 2003
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/m/
Box 266, Kars, Ontario CANADA K0A-2E0 +1(613)489-0999 (F:-0995)
ISBN 0-13-065196-6 Definitive XSLT and XPath
ISBN 0-13-140374-5 Definitive XSL-FO
ISBN 1-894049-08-X Practical Transformation Using XSLT and XPath
ISBN 1-894049-11-X Practical Formatting Using XSL-FO
Member of the XML Guild of Practitioners: http://XMLGuild.info
Male Breast Cancer Awareness http://www.CraneSoftwrights.com/m/bc
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list