一个真正的XQuery初学者问题,但我似乎无法解决我的问题。
我有一个XML数据库videos.xml,其中演员和电影存储为节点(我认为?)
演员们都有不同的ID,但是他们不是作为属性存储而是作为其他东西存储(是否有一些ID的内置属性?)。电影都有一个或几个引用actor-ID的actorRef属性。
我现在要查询的是所有引用某个actor-id的电影。假设Keanu Reeves的ID为“001”,那么我们想找到所有引用此ID的电影 - >例如矩阵与魔鬼的倡导者。这有什么内置功能吗?
答案 0 :(得分:0)
同意评论者需要更多内容,但您似乎正在寻找函数系列fn:id()
,fn:idref()
以及XPath和XQuery函数和运算符规范3.1版的新功能,fn:element-with-id()
。以下是从规范中获得的一些插图:
let $emp :=
<employee xml:id="ID21256">
<empnr>E21256</empnr>
<first>John</first>
<last>Brown</last>
</employee>
表达式id('ID21256')/name()
返回"employee"
。 (xml:id
属性具有is-id
属性,因此选择了employee元素。)。
表达式element-with-id('E21256')/name()
也会返回"employee"
。 (假设作为模式验证的结果,empnr
元素被赋予类型xs:ID
,该元素将具有is-id
属性,因此被选中。)
表达式idref('ID21256')
将返回引用employee
元素的任何元素或属性。 (假设作为模式验证的结果,引用节点被赋予类型xs:IDREF
或xs:IDREFS
,该节点将具有is-idrefs
属性。)