Florian,
There's an idiom for this kind of thing. It was first invented by ...
someone who no doubt reads this list!
<xsl:template match="root">
<xsl:for-each select="//apple">
<xsl:sort select="string-length(.)" order="descending"/>
<xsl:if test="position() = 1">
<xsl:value-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:template>
It selects all the apple elements in the document and iterates over the
set. The node list it selects is ordered by the string lengths of the
apples selected. Only the first in this list is processed (hence you get
the value of the first apple in the document whose length is longer than or
equal to all the other apples' lengths).
As for "most performant and best" I'm rather doubt that I can guarantee
that. :->
I hope that helps--
Wendell
At 04:35 PM 3/11/2003, you wrote:
i have a xml document like this:
<root>
<foo>
<apple>a</apple>
<orange>oiasd</orange>
</foo>
<foo>
<apple>hellooooo</apple>
<orange>test</orange>
</foo>
</root>
what would be the most performant and best way to get
the longest text of a apple node, and the longest text
of a orange node?
======================================================================
Wendell Piez
mailto:wapiez(_at_)mulberrytech(_dot_)com
Mulberry Technologies, Inc. http://www.mulberrytech.com
17 West Jefferson Street Direct Phone: 301/315-9635
Suite 207 Phone: 301/315-9631
Rockville, MD 20850 Fax: 301/315-8285
----------------------------------------------------------------------
Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list