<xsl:variable name="a">20</xsl:variable>
<xsl:variable name="b">10</xsl:variable>
<xsl:if test="($a) > ($b)">
------
</xsl:if>
Aşağıdaki deneyin .. condion eğer
<xsl:variable name="a">20</xsl:variable>
<xsl:variable name="b">10</xsl:variable>
<xsl:if test="($a) > ($b)">
------
</xsl:if>
Aşağıdaki deneyin .. condion eğer
hata alma ifadeleri, aksi halde bazı ayrıştırıcıları, etiketi erken kapattığınızı veya başka bir sayfayı açtığınızı düşünür.
'>' dan kaçmak zorunda değilsiniz. $ A> $ b' kullanmak kesinlikle mümkündür. – Saxoier
Haklısınız, birçok ay önce kullandım XSLT ayrıştırıcı beni ayrıştırıcı hatalardan kaçınmak için onları kaçma uygulamasında beni aldım. Şimdi kontrol ettim ve kodun iyi çalışıyor. Her gün yeni bir şeyler öğreniyorum, teşekkürler! –
Gönderdiğiniz örnek çalışmalıdır. Bununla birlikte, durumunuzda, her iki değişken de uzunluklarının farklı olduğu durumlarda şaşırtıcı sonuçlar verebilecek tipte bir dizgedir. Karşılaştırma operatörünün farklı veri türleri üzerindeki davranışı xpath spec on booleans'da belirtilmiştir.
buselect
özelliğini kullanarak değişkenleri bildirmek veya el karşılaştırma için
number onları dönüştürmek olabilir kaçınmak için:
<xsl:variable name="a" select="20"/>
<xsl:variable name="b" select="10"/>
...
<xsl:if test="number($a) > number($b)">
</xsl:if>
"Karşılaştırılacak hiçbir nesne düğüm kümesi olmadığında ve kullanıcı <=, <, > = veya> ise, nesneler her iki nesneyi sayılara dönüştürerek ve sayıları IEEE 754'e göre karşılaştırarak karşılaştırılır." - Tanımlanmamış davranış yok. – Saxoier
@Saxoier: Haklısınız, teklifinizden önce gelen paragraf sadece operatörlere uygulanır = = ve '! ='. –
Bana iyi görünüyor. Ne libxslt ne de Transformiix bir hata gösteriyor. – Saxoier
helpful @user_nums –