跳转到内容

XPath/SQL 等效

来自维基教科书,开放世界中的开放书籍

SQL 等效

[编辑 | 编辑源代码]

-XPath 无法执行类似联接的查询,但可以执行类似 SQL 的并集、交集、子集和差集

-XPath 使用联合操作和计数函数的变体支持类似 SQL 的集合操作

a UNION b: $a | $b

b UNION c: $b | $c

a INTERSECTION b: $a[count(.|$b) = count($b)]

a INTERSECTION c: $a[count(.|$c) = count($c)]

(交集取 $b 与 $a 中任何节点的并集,并返回 $a 中也存在于 $b 中的节点集)

a DIFFERENCE b: $a[count(.|$b) != count($b)] | $b[count(.|$a) != count($a)]

a DIFFERENCE c: $a[count(.|$c) != count($c)] | $c[count(.|$a) != count($a)]

(差集取 $a 与 $b 或 $c 差集的并集,并返回 $a 相对于 $b 或 $c 独有的节点集)

a SYM DIFFERENCE b: $a[count(. | $b) != count($b)] | $b[count(. | $a) != count($a)]

(对称差集取两边差集的并集,并返回 $a 和 $b 独有的节点集)

a SUBSET OF b: count($b | $a) = count($b) and count($b) > count($a)

b SUBSET OF a: count($b | $a) = count($a) and count($a) > count($b)

(子集表示 $a 与 $b 的并集返回相同的节点集,并且 $a 或 $b 较大)

XPath 可以嵌入到 xpointer 中以创建智能 URL

http://www.abcpub.co.uk/sitemap.xml#xpointer(//url)

华夏公益教科书