xml – 在xpath中为什么我可以使用大于符号>但不小于<

使用c#3编译变换以下似乎工作得很好……
<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>

但是,如果我敢于使用<代替& lt;它给出了一个错误......

<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: ‘<‘,
hexadecimal value 0x3C,is an invalid
attribute character.

那么为什么>好的而不是< ?

因为>不是XML中的保留字符,但是<是. 从 section 2.4 of the XML 1.0 spec (5th edition)开始:

The ampersand character (&) and the
left angle bracket (<) must not appear
in their literal form,except when
used as markup delimiters,or within a
comment,a processing instruction,or
a CDATA section. If they are needed
elsewhere,they must be escaped using
either numeric character references or
the strings “&amp;” and “&lt;
respectively. The right angle bracket
(>) may be represented using the
string “&gt;“,and must,for
compatibility,be escaped using either
&gt;” or a character reference when
it appears in the string “]]>” in content,when that string is not marking the end of a CDATA section.

相关文章

php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念