我有以下每个国家/地区重复的xml节点。这是一个例子:
<country name="Afghanistan" population="22664136" area="647500">
我想根据属性“population”的值在特定的数据集范围上应用模板。具体来说,我想撤回所有大于900万(9000000)和小于1000万(10000000)的东西。
我对XSLT和XPath感到非常不舒服。这是我期望的工作:
<xsl:apply-templates select="country[@population > '9000000' and population < '10000000']"/>
然而,这会引发基于'&lt;'的错误值范围内的字符。
我做了一些google-fu,我找不到任何可以解释我应该做些什么的事情。
提前致谢。
答案 0 :(得分:2)
您必须转义<
字符,因为XSLT是XML,并且在@
之前都使用population
。
并且没有必要引用这些数字:
<xsl:apply-templates select="country[@population > 9000000 and
@population < 10000000]" />
答案 1 :(得分:2)
由于XSLT是XML语法,因此如果使用&gt;和&lt ;,解释器将理解标签的开始或结束。
使用<
和>
代替&lt;和&gt;,
所以你的xpath会变成
<xsl:apply-templates select="country[@population > '9000000' and @population < '10000000']"/>