选择值小于某个数字的元素

时间:2011-12-21 15:36:00

标签: xml xslt xpath

通过这一行,我可以打印出大于1999的值

 <xsl:for-each select="//ad[regyear >= 1999]" >

但我似乎无法找出如何从1998年开始打印出来的价值。

3 个答案:

答案 0 :(得分:2)

更大或等于1999

//ad[regyear &gt;= 1999]

小于或等于1998

//ad[regyear &lt;= 1998]

答案 1 :(得分:2)

@Kirill给出了主要答案,但在XSLT 2.0中,您还可以使用ltle

//ad[regyear lt 1999]

可能更具可读性。在某些情况下,像&lt;这样的存在主义比较运算符可能会产生意想不到的毛茸茸影响,而lt会避免这些影响。

答案 2 :(得分:1)

为了便于阅读,我建议使用&lt;

而不是

//ad[regyear &lt;= 1998] 

我使用

//ad[not(regyear > 1998)] 

永远不要逃避XPath表达式中的>字符 - 我不知道有必要这样做。

最后,正如Lars正确提到的那样,在XPath 2.0(XSLT 2.0)中使用ltgtlegene值比较运算符,不使用常规比较运算符进行两个值之间的比较。