0

XQuery 新手,可能是菜鸟。我安装了一个 BaseX 数据库作为我的沙箱(其中包括一个示例文件 etc/factbook.xml)。我构建了一个简单的查询,我认为它会返回所有人口 > 1000 万的“城市”。

for $x in doc("etc/factbook.xml")/mondial/country
  where $x/city/population > 10000000.0
return $x/city

但我得到了人口较少的城市,有什么见解吗?

<city id="f0_1726" country="f0_553" longitude="126.967" latitude="37.5667">
  <name>Seoul</name>
  <population year="95">10229262</population>
</city>
<city id="f0_10300" country="f0_553">
  <name>Kunsan</name>
  <population year="95">266517</population>
</city>
 (I've only included first two but many more both < and > 10million)
4

1 回答 1

2

您将返回所有城市人口超过 1000 万的国家/地区。而是遍历城市(请使用有意义的变量名):

for $city in doc("etc/factbook.xml")/mondial/country/city
where $city/population > 10000000
return $city

或者只是去一个 XPath 表达式做同样的事情:

doc("etc/factbook.xml")/mondial/country/city[population > 10000000]
于 2014-03-06T20:12:48.963 回答