我在xsl文件中使用符号>
,但是当我使用像<=
时它没有显示任何内容。
任何人都可以告诉我,它有什么问题<=
以及我应该使用哪种替代方案?
<xsl:if test="price < 100">
<xsl:if test="price > 100">
答案 0 :(得分:1)
W3C XML spec表示属性中不允许使用文字<
(>
可以):
直接或间接在属性值中引用的任何实体的替换文本不得包含&lt;。
因此,在 test 属性中,您需要转义<
。如果您的条件是price <= 100
,那么您可以将其写为:
<xsl:if test="price <= 100">
答案 1 :(得分:1)
XSLT样式表必须是格式良好的XML文档。这就是为什么<
字符(和&
字符)在不在CDATA部分时必须进行转义的原因。
使用:
<xsl:if test="price <= 100">
或者,如果你不喜欢逃避:
<xsl:if test="not(price > 100)">
答案 2 :(得分:0)
您应该将<
转移到<
,就像在第一个代码示例中一样。
>
转义为>
。
您应该转义在XML中具有特殊含义的字符 - 这些是<>"'&
。
虽然在属性中,使用>
很好。
请参阅this SO问题和答案。