XQuery查询,使用两个xml文档

时间:2011-11-01 23:22:15

标签: xml xquery

使用Enrollment.xml和Person.xml文档,我正在尝试列出拥有所有A的学生的姓名。 Person中的ID字段指的是Enrollment中的StudentID字段。每个人注册的课程都有一个入学条目(不是每个学生一个条目)

我似乎无法弄清楚如何编写查询

Enrollment.xml表单 - >

<Document>
  <Table>
    <StudentID>170815037</StudentID>
    <Grade>C</Grade>
  </Table>
  <Table>
    <StudentID>193847547</StudentID>
    <Grade>A</Grade>
  </Table>
</Document>

Person.xml表单 - &gt;

<Document>
  <Table>
    <Name>Wee Fletcher</Name>
    <ID>115423723</ID>
  </Table>
</Document>

继承人正在努力工作,我无法让它工作

for $a in doc("proj3/Person.xml")/Document/Table/ID
where every $s in doc("proj3/Enrollment.xml")//Table[StudentID = $a]
          satisfies ($s/Grade = "A")
    return $a/Name;

1 个答案:

答案 0 :(得分:2)

存在一个小问题:您将$a设置为doc("proj3/Person.xml")/Document/Table/ID,稍后访问$a/Name(返回不存在的.../Table/ID/Name)。

更改第一行中的作业和第二行的比较(在此处添加/ID),您的代码就可以了:

for $a in doc("proj3/Person.xml")/Document/Table
where every $s in doc("proj3/Enrollment.xml")//Table[StudentID = $a/ID]
          satisfies ($s/Grade = "A")
    return $a/Name;
相关问题