Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath 如何返回具有位置的元素<;5._Xpath_Xquery - Fatal编程技术网

Xpath 如何返回具有位置的元素<;5.

Xpath 如何返回具有位置的元素<;5.,xpath,xquery,Xpath,Xquery,我需要返回前5个元素,其中孙子孙辈最多的Ano=2001,但我遇到了问题 我的代码: for $x in doc("Camaras.xml")/Portugal/Concelho order by xs:integer($x/Habitantes/Habitante[@Ano = "2001"]) descending return data($x[position() <= 5]) <?xml version="1.0" encoding="utf-8"?> <!DO

我需要返回前5个
元素,其中
孙子孙辈最多的
Ano
=2001,但我遇到了问题

我的代码:

for $x in doc("Camaras.xml")/Portugal/Concelho
order by xs:integer($x/Habitantes/Habitante[@Ano = "2001"]) descending
return data($x[position() <= 5])

<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE Portugal SYSTEM    "CamarasDTD.dtd"> <Portugal>
    <Concelho Nome="Arganil " id="0">
         <Contactos>
              <Email>geral@cm-arganil.pt</Email>
              <Telefone> +351 235 200 150</Telefone>
              <Fax> +351 235 200 158</Fax>
         </Contactos>
         <Localização>
              <Codigo-Postal>3304-954 Arganil</Codigo-Postal>
         </Localização>
         <Mapa src="http://cim-regiaodecoimbra.pt/wp-content/uploads/2014/04/3D_arganil.png"    />
         <Habitantes>
              <Habitante Ano="2001">2001</Habitante>
              <Habitante Ano="2011">12145</Habitante>
         </Habitantes>
    </Concelho>
    <Concelho Nome="Cantanhede " id="1">
         <Contactos>
              <Email>geral@cm-cantanhede.pt</Email>
              <Telefone> +351 231 410 100</Telefone>
              <Fax> +351 231 410 199</Fax>
         </Contactos>
         <Localização>
              <Codigo-Postal>3060-133 Cantanhede</Codigo-Postal>
         </Localização>
         <Mapa src="http://cim-regiaodecoimbra.pt/wp-content/uploads/2014/04/3D_cantanhede1.png"    />
         <Habitantes>
              <Habitante Ano="2001">37910</Habitante>
              <Habitante Ano="2011">36595</Habitante>
         </Habitantes>
    </Concelho>
    <Concelho Nome="Coimbra " id="2">
         <Contactos>
              <Email>geral@cm-coimbra.pt</Email>
              <Telefone> +351 239 857 500</Telefone>
              <Fax> +351 239 820 114</Fax>
         </Contactos>
         <Localização></Portugal>
文件中的$x(“Camaras.xml”)/葡萄牙/Concelho
按xs:integer($x/Habitantes/Habitante[@Ano=“2001”])降序排列

返回数据($x[position()您需要进行排序,然后进行筛选:

let $foo :=
    for $x in doc("Camaras.xml")/Portugal/Concelho
    order by xs:integer($x/Habitantes/Habitante[@Ano = "2001"]) descending
    return $x

return $foo[ position() <= 5 ]
让$foo:=
在doc(“Camaras.xml”)/pulation/Concelho中支付x美元
按xs:integer($x/Habitantes/Habitante[@Ano=“2001”])降序排列
返回$x

return$foo[position()您只显示1
Concelho