for-loop - 嵌套表达式和相对笛卡尔积
问题描述
我已经看到可以 使用For Expression在 XPath 中做一个笛卡尔积。例如,给定以下输入:
<people>
<group>
<her>Alex</her>
<him>Bert</him>
<her>Cora</her>
<him>Drew</him>
</group>
<group>
<her>Edna</her>
<him>Fred</him>
<him>Gary</him>
</group>
<group>
<her>Hope</her>
</group>
</people>
我可以使用以下方法将每个她与每个他配对:
for $her in /people/group/her,
$him in /people/group/him
return ($her/text(), $him/text())
由于两个绑定序列共享(唯一)根,我认为下面的表达式应该等同于前一个:
/people/(for $her in group/her,
$him in group/him
return ($her/text(), $him/text()))
尽管这个表达式被很好地解析了,但它在在线 XPath 测试器上执行时会产生(在我的理解中)一个意想不到的结果。我一直在浏览规范 ,似乎这个表达式不应该是有效的。
现在,我希望能够生成相对于<group>
标签的笛卡尔积。我的意思是,我想做她和他生活在同一个群体中的笛卡尔积。如果嵌套 for 表达式是可行的,它应该是这样的:
/people/group/(for $her in her,
$him in him
return ($her/text(), $him/text()))
但同样,这并没有产生预期的结果。
说了这么多,我有几个问题:
在路径中嵌套 for 表达式是否有效?如果是这样,为什么第一个和第二个表达式会产生不同的结果?
如果 1) 不可能,那么生产相对于
<group>
标签的笛卡尔积的标准方法是什么?
谢谢!
解决方案
推荐阅读
- sql - 过程中的 PL/SQL DBMS 输出不显示
- reactjs - 将 objectFit 与 gatsby-plugin-image 中的 StaticImage 结合使用
- python - conda 环境使用/调用不正确的 python 版本
- discord - 我如何使用用户 ID 而不是在 discord.js 上提及来赋予角色?
- c# - 在后台运行无限操作而不影响主线程的最佳方法?
- c# - 有没有办法编辑自定义树(UL,Li)中的数据,通过从 sql 查询(Ado.net)返回的数据循环填充
- javascript - 防止 Safari 中的视频控件触发点击事件
- ubuntu - ssh/known_hosts:没有这样的文件或目录
- javascript - 以编程方式在 React 中选择多个输入
- excel - EXCEL如何检查A列是否包含特定值而B列是否包含2个特定值?