> XSTL/XQuery compare strings to access an element
You need to get up to date. Decent XSLT/XQuery processors stopped doing that
years ago!
> We will also need to convert the age value from
> string to int in order to compare it.
XSLT/XQuery processors can maintain the age as an integer rather than a
string if they choose, especially if they are schema-aware. However, there's
a large class of queries and transformations that access the average node
less than once, and in those cases doing the conversion just-in-time, when
the value is accessed, is better than doing it just-in-case, when the XML is
unmarshalled.
A high-level language of course has much more scope to make such
optimizations; it can even make the decision based on its static analysis of
the query - as is done for example with document projection, where the parts
of the document that aren't needed by the query are discarded during
parsing.
Michael Kay
http://www.saxonica.com/