Değerleri Koşullu Olarak Atamak

Top  Previous  Next

$vof() fonksiyonu eleman özelliklerine koşullara bağlı değer atamak için de kullanılabilir. Bir örnek yapmadan önce XML dokümanımızda "calisan" düğümünün altına, aşağıdaki gibi, yeni XML düğümleri ekleyelim.

 

<?xml version="1.0" encoding="UTF-8"?>

<root>

 <calisan>

   <AD>Mehmet Çelik</AD>

  <CINSIYET>E</CINSIYET>

  <YAS>24</YAS>

 </calisan>

</root>

 

İşte örneğimiz:

$vof(/calisan/CINSIYET = 'E' ? 'Bay' ; 'Bayan')

 
Bu fonksiyon, eğer çalışanın cinsiyeti erkek ise "Bay" diğer durumda ise "Bayan" döndürecektir. Sıklıkla kullanmakta olduğumuz $vof() aslında derleme zamanında doğal XSL ifadelerine genişletilen bir makrodur.

Bu defa ki "$vof(/calisan/CINSIYET = 'E' ? 'Bay' ; 'Bayan')" kullanımı Application Studio tarafından aşağıdaki XSL kodlarına dönüştürülecektir

 

<xsl:choose>

<xsl:when test="/root/calisan/CINSIYET = 'E'"><xsl:value-of select="'Bay'"/></xsl:when>

<xsl:otherwise><xsl:value-of select="'Bayan'"/></xsl:otherwise>

</xsl:choose>

 

Şimdi bu örneği biraz daha geliştirelim.

$vof(/calisan/CINSIYET = 'E' ? 'Bay' ; 'Bayan') $vof(/calisan/AD)
 $vof(/calisan/YAS < 25 ? 'çok ')genç.

 

Sonuç:

Bay Mehmet Çelik

 çok genç.

 

$vof() Fonksiyonunun Kullanım Şekilleri

$vof() fonksiyonu farklı şekillerde kullanılabilir. İşte bazı örnekler:

$vof(YAS)

"YAS" adlı XML düğümünün değerini döndürür

$vof(YAS;VARSAYILAN_YAS)

"YAS" adlı XML düğümünün değerini döndürür. Eğer böyle bir düğüm mevcut değil ise veya düğümün değeri boş ise "VARSAYILAN_YAS" düğümünün değerini döndürür.

$vof(YAS < 25 ? 'genç')

Eğer "AGE" adlı XML düğümünün değeri 25 ten küçük ise "genç" değerini, aksi halde boş değer döndürür.

$vof(CINSIYET = 'E' ? 'Bay' ; 'Bayan')

"CINSIYET" adlı XML düğümü "E" değerini taşıyorsa "Bay" aksi durumda ise "Bayan" değerini döndürür.

$vof(A>B?(A>C?'A';'C');(B>C?'B';'C'))

Değeri en büyük olan XML düğümünün adını döndürür.