我正在尝试列出拥有所有A的学生的ID。这是我的XQuery:
for $s1 in doc("Unv.xml")//Enrollment[Grade = 'A']/StudentInfo/@oID
let $s2 := doc("Unv.xml")//Enrollment[Grade != 'A']/StudentInfo/@oID
where every $id in $s1
satisfies ($id != $s2)
return <StraightA> { $s1 } </StraightA>;
以下是我从以下网站提取数据的注册部分的片段:
<Enrollment EnrollmentID="Enrollment217">
<OfferingInfo oType="OfferingType" oID="Offering009"/>
<StudentInfo oType="StudentType" oID="s895255243"/>
<Grade>B</Grade>
</Enrollment>
但是,这只给了我一份至少有一个A.思想的学生名单?
答案 0 :(得分:0)
在XQuery中=
和!=
是序列比较运算符;他们对一系列价值观中的一场比赛感到满意。 eq
和ne
是值比较运算符,它们的工作方式与您期望的一样。
答案 1 :(得分:0)
$ s1是至少有一个A的学生的ID列表。 $ s2是至少有一个非A的学生的ID列表。
functx:value-except((1,2,3),(3,4,5))
(1, 2)
distinct-values($arg1[not(.=$arg2)])