David Carlisle How to test if there is only one child element and it's name is bva. <xsl:if test="*[last() = 1 and self::bva]"> Jeni expands:
Or you could translate what you said in English into XSLT almost word for
word:
test="count(child::*) = 1 and bva" Garry Paskin elaborates
> Pardon me, but I understand last() returns the order number of the last node
> of -any- node under the context node.
Yes, but don't forget XPath section 2.4:
"A predicate filters a node-set with respect to an axis to produce a new
node-set. For each node in the node-set to be filtered, the
PredicateExpr is evaluated >> with that node as the context node << with
the number of of nodes in the node-set as the context size and with the
proximity position of the node in the node-set with respect to the axis
as the context position ..."(emphasis added).
<xsl:if test="bva[last() = 1]"> In the example above, the node-set to be filtered is the set of all bva
nodes since that is to the left of the predicate. The predicate 'last()
= 1' is evaluated with respect to _that_ node-set. So the first test
above does indeed test to see if there is only one node in that
node-set, in other words, if there is only one bva node.
|