2010-06-13 8 views
5

utilizzando C# 3 compilato trasforma il seguente sembra funzionare bene ...in XPath perché posso usare il simbolo maggiore di> ma non di meno-che <

<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> 

Tuttavia se oso utilizzare un < al posto di &lt; dà un errore ...

<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: '<', valore esadecimale 0x3C, è un personaggio di attributo valido.

Quindi perché > ok e non <?

risposta

11

Perché > non è un carattere riservato in XML, ma è <.

Da section 2.4 of the XML 1.0 spec (5th edition):

Il carattere commerciale (&) e la staffa angolare sinistra (<) non devono apparire nella loro forma letterale, eccetto quando utilizzato come delimitatori di marcatura, oppure all'interno di un commento , un'istruzione di elaborazione o una sezione CDATA. Se sono necessari altrove, devono essere sottoposti a escape utilizzando o riferimenti a caratteri numerici o le stringhe "&amp;" e "&lt;" rispettivamente. La staffa ad angolo retto (>) può essere rappresentata mediante la stringa "&gt;", e deve, per compatibilità, essere sfuggito utilizzando o un riferimento "&gt;" carattere quando appare nella stringa "]]>" in contenuto, quando quella stringa non è che segna la fine di una sezione CDATA.

+0

[La parentesi angolare destra (>) può essere rappresentato utilizzando la stringa >, e deve, per compatibilità, essere sfuggito utilizzando > o un riferimento di carattere] Questo significa che anche se posso usare direttamente I shouldn 't? Saluti. T – gingerbreadboy

+0

Sì, questo è ciò che significa. –

+1

@runrunraygun: No. In effetti uso e raccomando sempre di usare '>'. Questo rende il tuo codice molto più naturale e comprensibile rispetto all'uso di '>' –

Problemi correlati