2010-06-13 10 views
5

i < kullanmak cesaret Ancakneden-büyüktür sembolü> ancak az daha kullanabilirsiniz <derlenmiş C# 3 Kullanılması

<xsl:choose> 
    <xsl:when test="$valA > $valB"> 
     <xsl:value-of select="$maxUnder" /> 
    </xsl:when> 
    <xsl:when test="$valA &lt; $valC"> 
     <xsl:value-of select="$maxOver" /> 
    </xsl:when> 
</xsl:choose> 

... Aşağıdaki sadece sorunsuz görünüyor dönüşümleri '<', onaltılık değer 0x3c geçersiz nitelik karakteridir: &lt; yerine bir hata ...

<xsl:choose> 
    <xsl:when test="$valA > $valB"> 
     <xsl:value-of select="$maxUnder" /> 
    </xsl:when> 
    <xsl:when test="$valA < $valC"> 
     <xsl:value-of select="$maxOver" /> 
    </xsl:when> 
</xsl:choose> 

System.Xml.XmlException verir.

Peki neden > tamam ve değil?

cevap

11

> XML'de ayrılmış bir karakter değil, ancak <'dur. section 2.4 of the XML 1.0 spec (5th edition) itibaren

:

imi (&) ve sol açılı ayraç (<), onların literal formda görünür dışında işaretleme ayracı olarak kullanılmaları veya yorum içindeki olmamalıdır bir işleme talimatı veya bir CDATA bölümü. Bunlar başka bir yerde 'a ihtiyaç duyuyorsa, sırasıyla nümerik karakter referansları veya dizeleri "&amp;" ve "&lt;" kullanarak kaçmaları gerekir. sağ açılı ayraç (>) string "&gt;" kullanılarak temsil edilebilir, ve uyumluluk için, "&gt;" ya da bir karakter referans kullanılarak öncelenmelidirler zaman bu dize "]]>" görünür içerik, bu dize bir CDATA bölümünün sonunu işaretleme değilse.

+0

[sağ açılı ayraç (>) dize > kullanılarak temsil edilebilir, ve uyumluluk için, ya > ya da bir karakter referans ile öncelenmelidirler] demek doğrudan kullanmak bile olsa olmamalı bu 't? şerefe. T – gingerbreadboy

+0

Evet, anlamı bu. –

+1

@runrunraygun: Hayır. Aslında her zaman '>' seçeneğini kullanın ve kullanmanızı öneriyorum. Bu, kodunuzu '>' –

İlgili konular