attributes - xQuery:关联 2 个属性并返回与所述属性相关的数据
问题描述
我有一个 XML 文件,其中包含有关健身房教练(监视器)和他们教授的活动(actividades)的信息。我一直在尝试创建一个查询,该查询将活动元素中的监视器代码属性与监视器元素中每个监视器的详细信息相关联。
有问题的确切任务是:“返回每个监视器的详细信息,该监视器使用 2 个或更多其他监视器教授活动。”
在活动元素中,有两个元素具有 2 个监视器。我可以使用以下代码获取这些:
for $test in doc("polideportivo.xml")/polideportivo/actividades/actividad/monitores
where count($test/monitor) > 1
return data($test/monitor/@codigo)
这给了我在每个活动中多次出现的代码属性的结果:
<results>m002 m003 m004 m005</results>
但是我的问题在于将这些代码链接到 monitores 元素中的监视器代码时。
起初我想使用 let 将上述代码应用于变量,但它显示了每个活动属性,而不仅仅是那些具有 2 个或更多的活动属性。
谁能指出我正确的方向?
下面我将留下一段 XML:
<polideportivo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="polideportivo.xsd">
<monitores>
<monitor codigo="m001">
<nombre>Mario</nombre>
<apellidos>Cansado Pérez</apellidos>
<telefono>968222222</telefono>
<salario>1200</salario>
</monitor>
<monitor codigo="m002">...</monitor>
<monitor codigo="m003">...</monitor>
<monitor codigo="m004">...</monitor>
<monitor codigo="m005">...</monitor>
</monitores>
<actividades>
<actividad codigo="a10">
<nombre>Pilates</nombre>
<duracion>55</duracion>
<intensidad>Ligero</intensidad>
<lugar>Sala Fitness</lugar>
<horario>...</horario>
<monitores>
<monitor codigo="m001"/>
</monitores>
</actividad>
<actividad codigo="a20">
<nombre>Crosstraining</nombre>
<duracion>55</duracion>
<intensidad>Fuerte</intensidad>
<lugar>Sala Fitness</lugar>
<horario>
<sesion>
<día>Martes</día>
<horas>
<hora>10:00</hora>
<hora>16:00</hora>
<hora>20:00</hora>
</horas>
</sesion>
</horario>
<monitores>
<monitor codigo="m002"/>
<monitor codigo="m003"/>
</monitores>
</actividad>
解决方案
看起来像
/*/monitores/monitor[
some $actividad in /*/actividades/actividad
satisfies
($actividad/monitores/monitor/@codigo = @codigo
and $actividad/monitores/monitor[2])]
是 XPath 2 及更高版本(也是 XQuery 1 及更高版本)表达式,用于表达您的口头描述(我不确定您是否要检查两个或更多或至少两个监视器,示例检查至少两个.
推荐阅读
- android - 如何在 AsyncTask 中获得临时禁用的首选项?
- android - 我如何接收可打包的包裹?
- java - 保存实体后休眠一对一和多对一关系的奇怪行为
- jquery - 如何将pdfmake脚本添加到数据表
- javascript - 使用 redux 表单时字段中不显示值
- ruby-on-rails - Rails ActiveStorage - 通过 Rails 控制台访问
- linux - Jenkins 显示错误 chrome 无法访问
- php - 图像源在 Laravel 中不可读
- python - Python CSV Writerow 附加一个 for 循环?
- sql - 从 T-SQL 中的列中的表达式获取特定字符串