2013-02-15 1 views
0

Я получаю DOB в формате YYYY-MM-DD.Получение возраста от даты рождения в случае, если заявление

Мне нужно рассчитать возраст, и если возраст больше 18, я должен передать имя.

Как сделать это в XSLT

Как

<xsl:if test="age>18"> 
     <xsl:element name="first_nam" "> 
    <xsl:value-of select="FirstName_TEXT/text()"/> 
     </xsl:element> 
    </xsl:if> 

Как рассчитать возраст в этом. и это camparison> 18 будет работать ..

+1

@Vinit - ">" должно быть хорошо в большинстве процессоров. «<» всегда следует избегать. –

+0

'>' отлично в значениях атрибутов XML и содержимого элементов, а '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' '' ''. –

+0

oops ... получил это ... спасибо – Vinit

ответ

2

Я не знаю, как вы собираетесь сделать это в 1,0, но если есть какой-то шанс вы можете использовать 2.0, это легко:

XML Input

<person> 
    <dob>1980-05-22</dob> 
    <FirstName_TEXT>Pac</FirstName_TEXT> 
</person> 

XSLT 2,0

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xs" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
    <xsl:output indent="yes"/> 
    <xsl:strip-space elements="*"/> 

    <xsl:template match="/person"> 
     <xsl:variable name="age" select="floor(days-from-duration(current-date() - xs:date(dob)) div 365)"/> 
     <xsl:if test="$age > 18"> 
      <first_nam> 
       <xsl:value-of select="FirstName_TEXT"/> 
      </first_nam> 
     </xsl:if> 
    </xsl:template> 

</xsl:stylesheet> 

Результаты

<first_nam>Pac</first_nam> 
+0

Спасибо за ваши ан. –

+0

@saurabhmohan - Тебе очень рады. Можете ли вы использовать XSLT 2.0? Отвечает ли это на ваш вопрос? –

+0

Я попробовал ваш код iam get error текущая дата неизвестна xslt function –