XQUERY在找到条件元素之后选择一个元素

问题描述 投票:0回答:1

我对XQuery还是很陌生,所以如果这非常简单,请原谅我。

基本上,我正在xml数据集中搜索单词“ has”,然后我希望能够返回“ has”之后紧随其后的单词,例如如果句子是“有火了吗?”我想返回单词“ there”。

XML语料库结构如下:

<s n="129">
                <w c5="NP0" hw="indonesia" pos="SUBST">Indonesia</w>
                <w c5="VHZ" hw="have" pos="VERB">has</w>
                <w c5="AJ0" hw="large" pos="ADJ">large</w>
                <w c5="NN2" hw="industry" pos="SUBST">industries</w>
                <c c5="PUN">,</c>
                <w c5="AV0" hw="recently" pos="ADV">recently</w>
                <w c5="VVN" hw="develop" pos="VERB">developed</w>
</s>

在此数据样本中,我希望在“ has”之后紧跟着“ large”一词。

我当前的XQuery代码如下:

<hascount>
{
for $v in
    doc ("KS0.xml")/bncDoc/stext/div/u/s/w
where
    $v = "has"
return ($v)
}
</hascount>

它只是返回此刻具有的所有实例。我将如何更改此代码以执行上面的预期任务?

谢谢你。

html xml xquery
1个回答
0
投票

所以我已经找到了自己的问题的答案。

这可以通过使用XPath轴“ following-sibling”来完成。

此代码在xquery中的实现将是:

<hascount>
{
for $v in
    doc ("KS0.xml")/bncDoc/stext/div/u/s/w
where
    $v = "has"
return ($v/following-sibling::*[1])
}
</hascount>
© www.soinside.com 2019 - 2024. All rights reserved.