代码之家  ›  专栏  ›  技术社区  ›  Zabba fl00r

小于运算符会导致xsl中的错误“格式不正确”

  •  12
  • Zabba fl00r  · 技术社区  · 14 年前

    我正在学习w3cschools XSLT教程,现在我在这一页: xsl-if .

    那一页(红色)是正文 <xsl:if test="price &gt; 10"> "&lt;" 而且效果也不错。

    我测试过了 <xsl:if test="price > 10"> (注意 > 而不是 &gt; ). 这也行。

    但这失败了: <xsl:if test="price < 10"> . 错误是 XML Parsing Error: not well-formed 它指向 < 表达式中的符号。

    如果 > 符号工作得很好,为什么使用 <

    3 回复  |  直到 14 年前
        1
  •  12
  •   Dimitre Novatchev    14 年前

    使用<失败?(我正在使用FireFox)

    因为“<”字符是属性值中为数不多的非法字符之一(它是标记字符的开头)。

    XML Specification

    [10]    AttValue    ::=    '"' ([^<&"] | Reference)* '"' 
    

    可以清楚地看到,任何属性值中都不允许使用“<”和“&”字符。

    更新 :正如@Tomalak注意到的,上面应该是:

        2
  •  6
  •   user414661    14 年前

    你也可以在w3schools上看到答案:

    http://www.w3schools.com/xmL/xml_syntax.asp

    有些字有特殊的含义 在XML中。

    如果放置一个字符,如“<” 生成错误 因为解析器 要素

        3
  •  4
  •   Tomalak    14 年前

    未编码的“开口”括号 < as per the XML spec .

    而“结束”括号 >