2017-02-20 16 views
0

Вот мой XML:Как найти значение узла с длиной самой длинной строки

<persons> 
    <person> 
     <name>Jason</name> 
    </person> 
    <person> 
     <name>John</name> 
    </person> 
    <person> 
     <name>Mary</name> 
    </person> 
    <person> 
     <name>Jennifer</name> 
    </person> 
</persons> 

Использование XSLT 1.0 Мне нужно найти человека с самым длинным именем. Каков наилучший способ сделать это?

ответ

2

Try:

XSLT 1,0

<xsl:stylesheet version="1.0" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> 
<xsl:strip-space elements="*"/> 

<xsl:template match="/persons"> 
    <xsl:for-each select="person"> 
     <xsl:sort select="string-length(name)" data-type="number" order="ascending"/> 
     <xsl:if test="position()=last()"> 
      <xsl:copy-of select="name"/> 
     </xsl:if> 
    </xsl:for-each> 
</xsl:template> 

</xsl:stylesheet> 
+0

Спасибо! Отлично работает – Jayfray

Смежные вопросы