2010-06-13 28 views
5

usando C# 3 compilado transforma la siguiente parece funcionar muy bien ...XPath qué puedo utilizar el símbolo mayor que> pero no menos que <

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

Sin embargo, si me atrevo a usar un < en lugar de &lt; que da un error ...

<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: '<', valor hexadecimal 0x3C, es un personaje atributo no válido.

¿Por qué entonces > está bien y no <?

Respuesta

11

Porque > no es un carácter reservado en XML, pero < es.

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

El carácter y comercial (&) y el soporte ángulo izquierdo (<) no deben aparecer en su forma literal, excepto cuando utilizado como delimitadores de marcado, o dentro de un comentario , una instrucción de procesamiento o una sección CDATA. Si se necesitan otra parte, hay que escaparon utilizando cualquiera de las referencias de caracteres numéricos o las cadenas "&amp;" y "&lt;" respectivamente. El soporte de ángulo recto (>) puede representarse mediante el cadena "&gt;", y debe, por compatibilidad, se escapó utilizando "&gt;" o una referencia de carácter cuando aparece en la cadena "]]>" en contenido, cuando esa cadena no es marcando el final de una sección CDATA.

+0

[El símbolo mayor que (>) pueden representarse utilizando la cadena >, y debe, por compatibilidad, se escaparon utilizando > o una referencia de carácter] ¿Esto significa que a pesar de que lo puedo usar directamente No debería ¿t? aclamaciones. T – gingerbreadboy

+0

Sí, eso es lo que significa. –

+1

@runrunraygun: No. De hecho, siempre uso y recomiendo usar '>'. Esto hace que su código sea mucho más natural y comprensible que cuando se usa '>' –

Cuestiones relacionadas