Skip to content

Instantly share code, notes, and snippets.

@mcanvar
Created January 21, 2016 16:06
Show Gist options
  • Save mcanvar/4bdff61890d6e34d94bc to your computer and use it in GitHub Desktop.
Save mcanvar/4bdff61890d6e34d94bc to your computer and use it in GitHub Desktop.
XSL vize çalışma örneği: TCMB Today.xml kaynağını kullandım.
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="vize_denemeler.xsl"?>
<!-- author: mevlutcanvar@gmail.com -->
<Currencies Tarih="13.11.2015" Date="11/13/2015" Bulten_No="2015/216">
<Currency CrossOrder="0" Kod="USD" CurrencyCode="USD">
<Unit>1</Unit>
<Name Lang="tr">ABD DOLARI</Name>
<Name Lang="en">US DOLLAR</Name>
<ForexBuying>2.8686</ForexBuying>
<ForexSelling>2.8738</ForexSelling>
<BanknoteBuying>2.8666</BanknoteBuying>
<BanknoteSelling>2.8781</BanknoteSelling>
<CrossRateUSD>1</CrossRateUSD>
<Country State="Virginia" />
<Country State="Kentucky" />
<Country State="Nevada" />
</Currency>
<Currency CrossOrder="1" Kod="AUD" CurrencyCode="AUD">
<Unit>1</Unit>
<Name Lang="tr">AVUSTRALYA DOLARI</Name>
<Name Lang="en">AUSTRALIAN DOLLAR</Name>
<ForexBuying>2.0426</ForexBuying>
<ForexSelling>2.0559</ForexSelling>
<BanknoteBuying>2.0332</BanknoteBuying>
<BanknoteSelling>2.0682</BanknoteSelling>
<CrossRateUSD>1.4011</CrossRateUSD>
</Currency>
<Currency CrossOrder="2" Kod="DKK" CurrencyCode="DKK">
<Unit>1</Unit>
<Name Lang="tr">DANİMARKA KRONU</Name>
<Name Lang="en">DANISH KRONE</Name>
<ForexBuying>0.41349</ForexBuying>
<ForexSelling>0.41552</ForexSelling>
<BanknoteBuying>0.4132</BanknoteBuying>
<BanknoteSelling>0.41648</BanknoteSelling>
<CrossRateUSD>6.9269</CrossRateUSD>
</Currency>
<Currency CrossOrder="10" Kod="GBP" CurrencyCode="GBP">
<Unit>1</Unit>
<Name Lang="tr">İNGİLİZ STERLİNİ</Name>
<Name Lang="en">POUND STERLING</Name>
<ForexBuying>4.3582</ForexBuying>
<ForexSelling>4.381</ForexSelling>
<BanknoteBuying>4.3551</BanknoteBuying>
<BanknoteSelling>4.3876</BanknoteSelling>
<CrossRateUSD>
</CrossRateUSD>
<CrossRateOther>1.5219</CrossRateOther>
<Country State="England" />
<Country State="Scotland" />
</Currency>
<Currency CrossOrder="3" Kod="CHF" CurrencyCode="CHF">
<Unit>1</Unit>
<Name Lang="tr">İSVİÇRE FRANGI</Name>
<Name Lang="en">SWISS FRANK</Name>
<ForexBuying>2.854</ForexBuying>
<ForexSelling>2.8723</ForexSelling>
<BanknoteBuying>2.8497</BanknoteBuying>
<BanknoteSelling>2.8766</BanknoteSelling>
<CrossRateUSD>1.0028</CrossRateUSD>
</Currency>
<Currency CrossOrder="4" Kod="SEK" CurrencyCode="SEK">
<Unit>1</Unit>
<Name Lang="tr">İSVEÇ KRONU</Name>
<Name Lang="en">SWEDISH KRONA</Name>
<ForexBuying>0.32968</ForexBuying>
<ForexSelling>0.33309</ForexSelling>
<BanknoteBuying>0.32945</BanknoteBuying>
<BanknoteSelling>0.33386</BanknoteSelling>
<CrossRateUSD>8.6642</CrossRateUSD>
</Currency>
<Currency CrossOrder="6" Kod="CAD" CurrencyCode="CAD">
<Unit>1</Unit>
<Name Lang="tr">KANADA DOLARI</Name>
<Name Lang="en">CANADIAN DOLLAR</Name>
<ForexBuying>2.1555</ForexBuying>
<ForexSelling>2.1652</ForexSelling>
<BanknoteBuying>2.1475</BanknoteBuying>
<BanknoteSelling>2.1734</BanknoteSelling>
<CrossRateUSD>1.329</CrossRateUSD>
</Currency>
<Currency CrossOrder="11" Kod="KWD" CurrencyCode="KWD">
<Unit>1</Unit>
<Name Lang="tr">KUVEYT DİNARI</Name>
<Name Lang="en">KUWAITI DINAR</Name>
<ForexBuying>9.3906</ForexBuying>
<ForexSelling>9.5135</ForexSelling>
<BanknoteBuying>9.2497</BanknoteBuying>
<BanknoteSelling>9.6562</BanknoteSelling>
<CrossRateUSD>
</CrossRateUSD>
<CrossRateOther>3.292</CrossRateOther>
</Currency>
<Currency CrossOrder="7" Kod="NOK" CurrencyCode="NOK">
<Unit>1</Unit>
<Name Lang="tr">NORVEÇ KRONU</Name>
<Name Lang="en">NORWEGIAN KRONE</Name>
<ForexBuying>0.32964</ForexBuying>
<ForexSelling>0.33186</ForexSelling>
<BanknoteBuying>0.32941</BanknoteBuying>
<BanknoteSelling>0.33262</BanknoteSelling>
<CrossRateUSD>8.681</CrossRateUSD>
</Currency>
<Currency CrossOrder="8" Kod="SAR" CurrencyCode="SAR">
<Unit>1</Unit>
<Name Lang="tr">SUUDİ ARABİSTAN RİYALİ</Name>
<Name Lang="en">SAUDI RIYAL</Name>
<ForexBuying>0.76493</ForexBuying>
<ForexSelling>0.76631</ForexSelling>
<BanknoteBuying>0.75919</BanknoteBuying>
<BanknoteSelling>0.77206</BanknoteSelling>
<CrossRateUSD>3.7502</CrossRateUSD>
</Currency>
<Currency CrossOrder="5" Kod="JPY" CurrencyCode="JPY">
<Unit>100</Unit>
<Name Lang="tr">JAPON YENİ</Name>
<Name Lang="en">JAPENESE YEN</Name>
<ForexBuying>2.3326</ForexBuying>
<ForexSelling>2.3481</ForexSelling>
<BanknoteBuying>2.324</BanknoteBuying>
<BanknoteSelling>2.357</BanknoteSelling>
<CrossRateUSD>122.68</CrossRateUSD>
</Currency>
<Currency CrossOrder="12" Kod="BGN" CurrencyCode="BGN">
<Unit>1</Unit>
<Name Lang="tr">BULGAR LEVASI</Name>
<Name Lang="en">BULGARIAN LEV</Name>
<ForexBuying>1.5709</ForexBuying>
<ForexSelling>1.5915</ForexSelling>
<CrossRateUSD>1.8159</CrossRateUSD>
</Currency>
<Currency CrossOrder="13" Kod="RON" CurrencyCode="RON">
<Unit>1</Unit>
<Name Lang="tr">RUMEN LEYİ</Name>
<Name Lang="en">NEW LEU</Name>
<ForexBuying>0.69172</ForexBuying>
<ForexSelling>0.70077</ForexSelling>
<CrossRateUSD>4.1238</CrossRateUSD>
</Currency>
<Currency CrossOrder="14" Kod="RUB" CurrencyCode="RUB">
<Unit>1</Unit>
<Name Lang="tr">RUS RUBLESİ</Name>
<Name Lang="en">RUSSIAN ROUBLE</Name>
<ForexBuying>0.04283</ForexBuying>
<ForexSelling>0.04339</ForexSelling>
<CrossRateUSD>66.61</CrossRateUSD>
</Currency>
<Currency CrossOrder="15" Kod="IRR" CurrencyCode="IRR">
<Unit>100</Unit>
<Name Lang="tr">İRAN RİYALİ</Name>
<Name Lang="en">IRANIAN RIAL</Name>
<ForexBuying>0.00952</ForexBuying>
<ForexSelling>0.00964</ForexSelling>
<CrossRateUSD>29964</CrossRateUSD>
</Currency>
<Currency CrossOrder="16" Kod="CNY" CurrencyCode="CNY">
<Unit>1</Unit>
<Name Lang="tr">ÇİN YUANI</Name>
<Name Lang="en">CHINESE RENMINBI</Name>
<ForexBuying>0.44755</ForexBuying>
<ForexSelling>0.45341</ForexSelling>
<CrossRateUSD>6.3737</CrossRateUSD>
</Currency>
<Currency CrossOrder="17" Kod="PKR" CurrencyCode="PKR">
<Unit>1</Unit>
<Name Lang="tr">PAKİSTAN RUPİSİ</Name>
<Name Lang="en">PAKISTANI RUPEE</Name>
<ForexBuying>0.02707</ForexBuying>
<ForexSelling>0.02742</ForexSelling>
<CrossRateUSD>105.4</CrossRateUSD>
</Currency>
</Currencies>
<?xml version="1.0" encoding="UTF-8"?>
<!-- author: mevlutcanvar@gmail.com -->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html"/>
<xsl:template match="/">
<html>
<head>
<title>FÜZE DENEMESİ</title>
</head>
<body>
<br />
<b>Sadece döviz kodu yazımı: </b>
<xsl:for-each select="Currencies/Currency">
<xsl:value-of select="@CurrencyCode" />,
</xsl:for-each><br />
<hr />
<b>CrossOrder &lt; 5: </b>
<xsl:for-each select="Currencies/Currency">
<xsl:if test="@CrossOrder &lt; 5">
<xsl:value-of select="Name" />,
</xsl:if>
</xsl:for-each><br />
<hr />
<b>İngilizce isimleri: </b>
<xsl:for-each select="Currencies/Currency">
<xsl:value-of select="Name[@Lang = 'en']" />
<xsl:choose>
<xsl:when test="position() = last()-1">
and
</xsl:when>
<xsl:when test="position() = last()">
.
</xsl:when>
<xsl:otherwise>
,
</xsl:otherwise>
</xsl:choose>
</xsl:for-each><br />
<hr />
<b>Foreks alış değerine göre sıralanmış: </b><br />
<xsl:for-each select="Currencies/Currency">
<xsl:sort select="ForexBuying" order="ascending" data-type="number" />
<xsl:value-of select="ForexBuying" /> - <xsl:value-of select="Name[@Lang = 'tr']" /><br />
</xsl:for-each><br />
<hr />
<b>XSL Attribute etiketi ile link yapma: </b>
<a>
<xsl:attribute name="href">
#<xsl:value-of select="Currencies/Currency[@CrossOrder='10']/Name[@Lang = 'tr']" />
</xsl:attribute>
<xsl:value-of select="Currencies/Currency/Name[@Lang = 'tr']" />
</a><br />
<hr />
<b>Kodlara template uygulama: </b>-
<xsl:for-each select="Currencies/Currency">
<xsl:apply-templates select="@Kod" /> -
</xsl:for-each><br />
<hr />
<b>Tek bir içeriğe template uygulama: </b>-
<xsl:apply-templates select="Currencies/Currency[position()=3]/Name[@Lang='en']" /><br />
<hr />
<b>Son Düğümün bütün çocuk düğümleri: </b>
<xsl:value-of select="Currencies/*[position()=last()]" /><br />
<hr />
<b>2. Düğümün isminin, ebeveyninin, 3. düğümünün, Name'i: </b>
<xsl:value-of select="Currencies/Currency[position()=2]/../Currency[position()=3]/Name" /><br />
<hr />
<b>7. Düğümün, Name'inin BanknoteSelling sibling'i: </b>
<xsl:value-of select="Currencies/Currency[position()=7]/Name/../BanknoteSelling" /><br />
<hr />
<b>İlk, Name'inin, Parent'ının Kod attribute'ü: </b>
<xsl:value-of select="Currencies/Currency/Name/../@Kod" />
<xsl:value-of select="Currencies/Currency[position()=7]/Name/../BanknoteSelling" /><br />
<hr />
<b>Son düğümün bütün attribute'leri: </b><br />
<xsl:for-each select="Currencies/Currency[last()]/@*">
<xsl:value-of select="." /><br />
</xsl:for-each><br />
<hr />
<b>Çin Yuanı düğümünün türkçe ismine, absolute adres ile erişme: </b><br />
<xsl:value-of select="/Currencies/Currency[@CrossOrder='16']/Name[@Lang='tr']" /><br />
<hr />
<b>Bütün torun düğümlerden @State att sahip olanları: </b><br />
<xsl:for-each select="//*/@State">
<xsl:value-of select="." /><br />
</xsl:for-each><br />
<hr />
<b>Bütün Unit isimli düğümlerin kardeş düğümleri: </b><br />
<xsl:for-each select="//Unit">
<xsl:value-of select=".." /><br />
</xsl:for-each><br />
<hr />
<b>Satış fiyatı 2 ten büyük, 5 ten küçük olanları isimleriyle beraber tablo halinde, azalan sıralı: </b><br />
<table border="1">
<tr>
<td>İsim</td>
<td>Satış</td>
</tr>
<xsl:for-each select="Currencies/Currency[BanknoteSelling &gt; 2][BanknoteSelling &lt; 5]">
<xsl:sort select="./BanknoteSelling" order="descending" data-type="number" />
<tr>
<td><xsl:value-of select="./Name" /></td>
<td><xsl:value-of select="./BanknoteSelling" /></td>
</tr>
</xsl:for-each>
</table><br />
<hr />
<b>Dizi deklarasyonu ile 4. düğümü görüntüleme: </b><br />
<xsl:value-of select="Currencies/Currency[4]" /><br />
<hr />
<b>Doların normal ve foreks alış satış farkı: </b><br />
Normal: <xsl:value-of select="Currencies/Currency[1]/BanknoteSelling - Currencies/Currency[1]/BanknoteBuying" /><br />
Foreks: <xsl:value-of select="Currencies/Currency[1]/ForexSelling - Currencies/Currency[1]/ForexBuying" /><br />
<hr />
<b>Doların normal ve foreks alış satış farkı: </b><br />
Normal: <xsl:value-of select="Currencies/Currency[1]/BanknoteSelling - Currencies/Currency[1]/BanknoteBuying" /><br />
Foreks: <xsl:value-of select="Currencies/Currency[1]/ForexSelling - Currencies/Currency[1]/ForexBuying" /><br />
<hr />
<b>Bütün döviz tiplerinin sayısı: </b>
<xsl:value-of select="count(Currencies/Currency)" /><br />
<hr />
<b>Doların normal ve foreks alış satış farkı: </b><br />
Normal: <xsl:value-of select="Currencies/Currency[1]/BanknoteSelling - Currencies/Currency[1]/BanknoteBuying" /><br />
Foreks: <xsl:value-of select="Currencies/Currency[1]/ForexSelling - Currencies/Currency[1]/ForexBuying" /><br />
<hr />
<b>Satış fiyatlarını formatlı(#,##0.00) gösterme: </b><br />
<xsl:for-each select="Currencies/Currency">
<xsl:value-of select="format-number(./BanknoteSelling, '#,##0.00')" /> -
</xsl:for-each><br />
<hr />
<b>Round, Ceiling ve Floor ile tüm düğümleri gösterme: </b><br />
R: <xsl:for-each select="Currencies/Currency">
<xsl:value-of select="round(./ForexSelling)" /> -
</xsl:for-each><br />
C: <xsl:for-each select="Currencies/Currency">
<xsl:value-of select="ceiling(./ForexSelling)" /> -
</xsl:for-each><br />
F: <xsl:for-each select="Currencies/Currency">
<xsl:value-of select="floor(./ForexSelling)" /> -
</xsl:for-each><br />
<hr />
<b>str fonksiyonlar: </b><br />
substring-before: <xsl:value-of select="substring-before(/Currencies/Currency[@CrossOrder='16']/Name[@Lang='tr'], ' ')" /><br />
substring-after: <xsl:value-of select="substring-after(/Currencies/Currency[@CrossOrder='16']/Name[@Lang='tr'], ' ')" /><br />
substring: <xsl:value-of select="substring(/Currencies/Currency[@CrossOrder='16']/Name[@Lang='tr'],2,2)" /><br />
translate: <xsl:value-of select="translate(/Currencies/Currency[@CrossOrder='16']/Name[@Lang='tr'],'ÇİNYUANI','çinyuanı')" /><br />
<hr />
<b>Bütün ForexBuying in ortalaması: </b><br />
<xsl:value-of select="sum(/Currencies/Currency/ForexBuying) div count(/Currencies/Currency/ForexBuying)" /><br />
<hr />
<b>Diğer Fonksiyonlar: </b><br />
name: <xsl:value-of select="name(/Currencies/Currency/ForexBuying)" /><br />
contains: <xsl:value-of select="contains(/Currencies/Currency/Name, substring-after(/Currencies/Currency/Name, ' '))" /><br />
string-length: <xsl:value-of select="string-length(/Currencies/Currency/Name)" /><br />
</body>
</html>
</xsl:template>
<xsl:template match="@Kod">
<i style="color: #bf1e2e">
<xsl:value-of select="." />
</i>
</xsl:template>
<xsl:template match="Currency[position()=3]/Name[@Lang='en']">
<b style="color: #bf1e2e">
<xsl:value-of select="." />
</b>
</xsl:template>
</xsl:stylesheet>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment