For loop 表达式和相关笛卡尔积的嵌套

For loop 表达式和相关笛卡尔积的嵌套,for-loop,xpath,cartesian-product,For Loop,Xpath,Cartesian Product,我已经看到有可能做一个 使用一个表达式。例如,给定以下输入: <people> <group> <her>Alex</her> <him>Bert</him> <her>Cora</her> <him>Drew</him> </group> <group>

我已经看到有可能做一个 使用一个表达式。例如,给定以下输入:

<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>
由于两个绑定序列共享(唯一)根,我认为 以下表达式应与前一表达式等效:

/people/(for $her in group/her, 
             $him in group/him 
         return ($her/text(), $him/text()))
虽然这个表达式被很好地解析,但(据我所知)在一个实例上执行时会产生一个意外的结果。我一直在 略读 这个表达式似乎是无效的

现在,我希望能够生成相对于
标记的笛卡尔积。我的意思是,我想做她和他生活在同一个群体中的笛卡尔乘积。如果嵌套for表达式是可行的,则应该是这样的:

/people/group/(for $her in her, 
                   $him in him 
               return ($her/text(), $him/text()))
但同样,这并没有产生预期的结果

话虽如此,我有几个问题:

  • 在路径中嵌套for表达式是否有效?如果是,为什么第一个表达式和第二个表达式产生不同的结果

  • 如果1)不可能,那么产生笛卡尔曲线的标准方法是什么 与
    标签相关的产品

  • 谢谢大家!

    /people/group/(for $her in her, 
                       $him in him 
                   return ($her/text(), $him/text()))