2009-08-13 7 views
0

J'ai un élément en XML: <duration>00:08:90</duration>. J'utilise XSLT pour créer un XML avec des éléments requis pour mon système.Supprimer le colon et le convertir en nombre dans XSLT

Tout d'abord, je veux que mon XSLT pour enlever les deux points à ressembler à ceci: 000890 Je veux faire un si-test pour vérifier si ce nombre est inférieur à (<) 001000

+0

Quel moteur XSLT utilisez-vous? .Net? – David

Répondre

3

Vous pouvez utiliser le traduire fonction pour supprimer les: côlons

translate(., ':', '') 

alors la valeur de numéro que vous pouvez vérifier effectuer les opérations suivantes:

number(.) < 1000 

donc si le xml était comme:

<xml> 
    <tag>00:08:90</tag> 
</xml> 

Ensuite, vous pourriez avoir la XSLT suivante:

<xsl:variable name="test" select="number(translate(/xml/tag, ':', '')) &lt; 1000" /> 
<!-- $test will = true() --> 

Vérifiez cette zvon xslt number function reference pour les valeurs acceptables pour number() faire la vérification d'erreur correcte.

+0

+1 Battez-moi. ;-) – Tomalak

+0

superbe post .. :-) +1 .. a apprendre de nouvelles choses .. –

0
<xsl:if test="number(translate(duration, ':', '')) &lt; 1000"> 
    <!-- do something --> 
</xsl:if> 

À moins qu'il n'y a aucun moyen pour la valeur de durée invalide/mal-formatés, portent une attention particulière à sa longueur et aussi 'NaN' valeurs qui pourraient être retournés par number().

Questions connexes