Soru Bir XSLT dizesi karşılaştırılırken "eşit değil" i nasıl belirtirim?


Şu anda aşağıdaki kod ile bir xsl var nerede "eşittir" yazdırmak çalıştığım sadece eşit değilse N/A. ama benziyor "!=" çalışmıyor.

<xsl:for-each select="Directory/Match">
    <xsl:if test = "Count != N/A">
        <tr>
            <td><xsl:value-of select="@bookName" /></td>
            <td><xsl:value-of select="@AuthorName" /></td>
            <td><xsl:value-of select="Count" /></td>
        </tr>
    </xsl:if>
</xsl:for-each>

Ancak, sayısal değerle karşılaştırmaya çalışırsam çalışır.

Örnek:

<xsl:if test = "Occurrances != 0">

Birisi lütfen bana söyleyebilir: Dizeleri karşılaştırmak istersem ne kullanabilirim?


50
2018-05-10 13:19


Menşei




Cevaplar:


Filburt'un dediği gibi; ama aynı zamanda yazmanın genellikle daha iyi olduğuna dikkat edin

test="not(Count = 'N/A')"

Eğer tam olarak bir Kont elemanı varsa, aynı şeyi kastediyorlar, fakat eğer Kont yoksa, ya da birkaç varsa, o zaman anlamlar farklıdır.

6 YIL SONRA

Bu cevap popüler hale geldiği için, bazı okuyuculara biraz şifreli olabileceğinden, onu genişletmeme izin verin.

XPath'daki "=" ve "! =" Operatörü, iki değer kümesini karşılaştırabilir. Genel olarak, A ve B değerleri değer kümeleri ise, A ve B değerlerinden herhangi bir çift eşitse "=" değeri true olur, "! =" İse eşit olmayan bir çift varsa true değerini döndürür.

A'nın sıfır veya bir düğümleri seçtiği ve B'nin bir sabit olduğu (yani "NA") olduğu bilinen durumda, bu demektir ki not(A = "NA") A yoksa ya da "NA" değerine eşit olmayan bir değere sahipse true değerini döndürür. Aksine, A != "NA" A mevcutsa ve "NA" değerine eşit değilse true değerini döndürür. Genellikle "yok" durumunun "eşit değil" olarak değerlendirilmesini istersiniz. not(A = "NA") uygun formülasyondur.


67
2018-05-10 15:02





Bir dize değişmeziyle karşılaştırmak isterseniz, onu (tek) tırnak içine koymanız gerekir:

<xsl:if test="Count != 'N/A'">

30
2018-05-10 13:35



hey yardımlarınız için teşekkürler. tek tırnak çalışmaları. :) - Maxyie
Belki de testin tırnak işaretleri gerektirdiğine de değinmek gerekir çünkü test onlar olmadan kusursuz bir anlam ifade eder: bu durumda, ancak Count Alt öğe, bazılarının değerine eşit değildir. A bir çocuk unsuru N alt öğe. - C. M. Sperberg-McQueen