Tekrar eden kayıtları silme - VKN si aynı olan kayıtları siler.
<Group Description="Tekrar eden kayıtları sil">
<Delete Node="/*/Liste/Data/Template[VKN=preceding::VKN]" />
</Group>
Bir Node Set içerisinde distinct görevi görür - Tip Değeri İçin
/*/IK_Tanimlamalar/Data/Template[not(Tip=preceding::Tip)]/Tip
Süreç içerisinde listelenmiş birden çok satırdaki alanı tek bir satırda göstermek amacı ile ekleme yaparken aynı isimde olanları belirlemek için xpath contains özelliği kullanılabilir.
Contains ve string-length kullanımı
<ForEach Node="/*/FirmaBilgileri/Liste/Sablon[@guid!='{00000000-0000-0000-0000-000000000000}' ]">
<If>
<Then>
<Condition>
<Not>
<Value Culture="" Target="None">eval::contains(/*/FormBilgileri/FirmaAd,FirmaAdi)</Value>
</Not>
</Condition>
<Perform>
<Set Node="/*/FormBilgileri/FirmaAd">
<StringConcat>
<Evaluate Target="None" Culture=""><![CDATA[/*/FormBilgileri/FirmaAd]]></Evaluate>
<Value Culture="" Target="None">-</Value>
<Value Culture="" Target="None">eval::./FirmaAdi</Value>
</StringConcat>
</Set>
</Perform>
</Then>
</If>
</ForEach>
<SetVariable Name="$(firstLength)">
<Math Operator="Subtract">
<Value Culture="" Target="None">eval::string-length(/*/FormBilgileri/FirmaAd)</Value>
<Value Culture="" Target="Integer">1</Value>
</Math>
</SetVariable>
<Set Node="/*/FormBilgileri/FirmaAd">
<SubString StartIndex="1" Length="$(firstLength)">
<Evaluate Target="None" Culture=""><![CDATA[/*/FormBilgileri/FirmaAd]]></Evaluate>
</SubString>
</Set>
preceding-sibling kullanımı
<Script Name="">
<SetVariable Name="$(Bilgilendirilecekler)">
<Value Culture="" Target="None" />
</SetVariable>
<ForEach Node="/*/processingInfo/workItem[not(completedBy = preceding-sibling::workItem/completedBy)]">
<SetVariable Name="$(Bilgilendirilecekler)">
<Value Culture="" Target="None">eval::concat('$(Bilgilendirilecekler)', completedBy, ';')</Value>
</SetVariable>
</ForEach>
<SetVariable Name="$(length)">
<Math Operator="Subtract">
<Value Culture="" Target="None">eval::string-length('$(Bilgilendirilecekler)')</Value>
<Value Culture="" Target="Integer">1</Value>
</Math>
</SetVariable>
<SetVariable Name="$(Bilgilendirilecekler)">
<Value Culture="" Target="None">eval::substring('$(Bilgilendirilecekler)',1,'$(length)')</Value>
</SetVariable>
<Value Culture="" Target="None">$(Bilgilendirilecekler)</Value>
</Script>
floor ve div ile bölme işlemi kullanımı
<Set Node="Sure/Gun">
<Evaluate Target="Decimal" Culture=""><![CDATA[floor(Sure/Saat div 24)]]></Evaluate>
</Set>
Bölüm sonrası kalanı alma - mod
<Set Node="Sure/Saat">
<Evaluate Target="Decimal" Culture=""><![CDATA[Sure/Saat mod 24]]></Evaluate>
</Set>
Lower-Case
<Evaluate Target="None" Culture=""><![CDATA[translate(/*/Baslik/Email,'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz')]]></Evaluate>
Upper-Case
<Evaluate Target="None" Culture=""><![CDATA[translate(./Kod,'abcdefghijklmnopqrstuvwxyzçÇğĞıİöÖşŞüÜÂ','ABCDEFGHIJKLMNOPQRSTUVWXYZCCGGIIOOSSUU ')]]></Evaluate>
String-join
<Value Culture="" Target="None">eval::string-join((/*/Tanimlamalar/Data/Template[(Kod='823' or Kod='824' or Kod='825' or Kod='826' or Kod='827' or Kod='828') and TalepDurumu='true' ]/Ad/text()),"-")</Value>
<SetVariable Name="$(Hold)">
<Value Culture="" Target="None">eval::substring-after('$(MailBody)','/index.html/form/')</Value>
</SetVariable>
<Set Node="workitemid">
<Value Culture="" Target="None">eval::substring('$(Hold)',1,36)</Value>
</Set>