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"])
我有很多 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"])