我有一个带有这些元素的xml
示例:
<tienda>
<empleados>
<empleado cod="B">
<nombre>Juan</nombre>
<localidad>Linares</localidad>
<provincia>Jaén</provincia>
</empleado>
<empleado cod="B">
<nombre>Pepe</nombre>
<localidad>Algeciras</localidad>
<provincia>Cádiz</provincia>
</empleado>
<empleado cod="A">
<nombre>Víctor</nombre>
<localidad>Jaén</localidad>
<provincia>Jaén</provincia>
</empleado>
<empleado cod="A">
<nombre>Luisa</nombre>
<localidad>Granada</localidad>
<provincia>Granada</provincia>
</empleado>
<empleado cod="A">
<nombre>Pedro</nombre>
<localidad>El Viso del Alcor</localidad>
<provincia>Sevilla</provincia>
</empleado>
<empleado cod="A">
<nombre>Andrés</nombre>
<localidad>Sevilla</localidad>
<provincia>Sevilla</provincia>
</empleado>
<empleado cod="C">
<nombre>María</nombre>
<localidad>Guadix</localidad>
<provincia>Granada</provincia>
</empleado>
</empleados>
</tienda>
有一些省(省),我希望只检索格拉纳达和塞维利亚。
如果我使用XPath中的位置运行此查询,则运行正常:
for $e in doc("LMSGI06.1.xml")/tienda/empleados/empleado[provincia = "Granada" or provincia="Sevilla"]
return $e
结果:
<provincia>Granada</provincia>
<provincia>Sevilla</provincia>
<provincia>Sevilla</provincia>
<provincia>Granada</provincia>
但实际上我想使用条款Where
我尝试了这个,但查询检索所有省份。
for $e in doc("LMSGI06.1.xml")/tienda/empleados
where $e/empleado/provincia = "Granada"
or $e/empleado/provincia = "Sevilla"
return $e/empleado/provincia
我究竟做错了什么?
更改您的XQuery以迭代empleado
元素,如下所示:
for $e in doc("LMSGI06.1.xml")/tienda/empleados/empleado
where $e/provincia = "Granada" or $e/provincia = "Sevilla"
return $e/provincia
输出是:
<provincia>Granada</provincia>
<provincia>Sevilla</provincia>
<provincia>Sevilla</provincia>
<provincia>Granada</provincia>
你的错误是迭代错误的元素。就这样。