XQuery 和 XPath - 根据当前属性测试 child/attribute

XQuery and XPath - testing for child/attribute based on current attribute

我有很多 xml 个结构化的文件

<seg type="dep_event" xml:id="MS609-0000-01">
  <date type="event_date" when="1245"/>
</seg>

其中 <date type="event_date" when="1245"> 是可选的。

现在在 Xpath/Xquery 3.1 中,我需要根据 当前上下文节点 seg/@xml:id 测试 date@when 是否存在。 =19=]

想象一下 Xquery 3.1 中的这种情况:

let $doc := doc(somedocument.xml)

for $xmlidattr in $doc//tei:seg[@type="dep_event"]/@xml:id

现在,我需要使用 $xmlidattr

测试 date/@when

非常感谢。

编辑:重组问题以更清楚地了解 XQuery

context node 的想法

id 的父项是 seg,它的子项是 date:

../date[@type="event_date"][@when="1245"]

这是对原始问题的回答。问题已经改变,新的答案是

$xmlidattr/../date[@type="event_date"][@when="1245"]

但是,我通常会从包含元素开始,而不是从属性开始:

for $seg in $doc//tei:seg[@type="dep_event"],
    $xmlidattr in $seg/@xml:id
return f($seg/date[@type="event_date"][@when="1245"])