2016-04-07 15 views
3

Aşağıda açıkladığım bir XML'im var. Bu xml, örneğin adres düğümü içerir (adres1). Sadece adres metninde karakterin sayısını (,) saymak istiyorum. Şablon kullanıyorum, sadece xslt değişkenine bir depolama adresi metininden bahsetmek için.XSLT 2.0'daki bir değişkendeki karakter sayısını sayın

Örnek XML:

<xml> 
    <address1>123 Fake Street, Alberta, Alberta, 234567</address1> 
    <address1>123 Fake Street, Alberta, Alberta</address1> 
</xml> 

Benim XSLT:

<xsl:variable name="address" select="//*[local-name()='address1')]"/> 
<xsl:variable name="totalComma" select="count(contains($address, ','))"/> 
<xsl:choose> 
<xsl:when test="$totalComma = 3"> 
    <!--Do something--> 
</xsl:when> 
<xsl:when test="$totalComma = 2"> 
    <!--Do something--> 
</xsl:when> 
</xsl:choose> 

Bu doğru çözümdür ya da değil ama sonuç beklendiği alamadım olmadığını bilmiyorum. Küçük bir yardım çok takdir edilebilir olurdu.

+0

xslt 1,0 veya 2.0? Xslt 1.0 ile özyinelemeli bir şablon kullanabilirsiniz (ya da ',' olası 'karakterleri biliniyorsa tercüme et (bir tane bekleyecektim)) –

+0

@ hr_117 xslt 2.0 –

cevap

2

string-length(foo) - string-length(translate(foo, ',', ''))'u kullanın.

+0

Bu da 1,0 yapacaktır Cool –

+1

@Martin Teşekkür ederim çok fazla. Beklendiği gibi çalışıyor. –

İlgili konular