2008-11-04 4 views
1

Я мог бы использовать некоторую помощь при создании шаблона XSL, который примет строку чисел (т. Е. 123456789) и отформатирует эту строку в формате номера социального обеспечения (т. Е. 123-45-6789). Я нашел one example в Интернете, но это казалось сложным.Формат SSN в XSLT?

Я новичок в XSLT, поэтому имейте это в виду при ответе. Спасибо!

ответ

4

XSLT 1.0 в строковые функции немного ограничены, но, к счастью, это не так уж трудно:

< Предполагая Ssn> 123456789 < />: номер социального

<xsl:template match="ssn">  
    <xsl:value-of select="substring(., 0, 4)"/> 
    <xsl:text>-</xsl:text> 
    <xsl:value-of select="substring(., 4, 2)"/> 
    <xsl:text>-</xsl:text> 
    <xsl:value-of select="substring(., 6, 4)"/>  
</xsl:template> 

В XSLT 2.0, CONCAT() может принимать более двух аргументов, так что это одна строка:

<xsl:template match="ssn"> 
     <xsl:value-of select="concat(substring(., 0, 4), '-', substring(., 4, 2), '-', substring(., 6, 4))" />  
    </xsl:template> 
+2

В XSLT 1.0 вы можете также гнездо CONCAT() s: Но ваш вариант гораздо читабельнее :) – ChuckB 2008-11-04 22:34:25

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