Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xpath 如何编写查询flwor xquery?_Xpath_Xquery_Xquery Sql_Xquery 3.0_Xquery Update - Fatal编程技术网

Xpath 如何编写查询flwor xquery?

Xpath 如何编写查询flwor xquery?,xpath,xquery,xquery-sql,xquery-3.0,xquery-update,Xpath,Xquery,Xquery Sql,Xquery 3.0,Xquery Update,我有5辆车,每辆车有5个车主,我需要返回那些国家没有出现在其他车的车主中的车主(可以出现在同一辆车的车主中): 1. 乔治·史密斯 美国 卡罗莱纳·赫尔 美国 玛莎·贝拉 丹麦 费尔南多·伊扎 意大利 乔治·史密斯 意大利 2. 乔治·盖拉 美国 吉马生物 西班牙 彼得·维德夫 丹麦 费利佩·罗德里格斯 丹麦 乔治·史密斯 美国 ... ... ... 也就是说,给定该xml,输出将是: <owner> <name>Fernando Izza</name

我有5辆车,每辆车有5个车主,我需要返回那些国家没有出现在其他车的车主中的车主(可以出现在同一辆车的车主中):


1.
乔治·史密斯
美国
卡罗莱纳·赫尔
美国
玛莎·贝拉
丹麦
费尔南多·伊扎
意大利
乔治·史密斯
意大利
2.
乔治·盖拉
美国
吉马生物
西班牙
彼得·维德夫
丹麦
费利佩·罗德里格斯
丹麦
乔治·史密斯
美国
...
...
...
也就是说,给定该xml,输出将是:

<owner>
    <name>Fernando Izza</name>
    <nation>Italy</nation>
    <carID>1</carID>
</owner>
<owner>
    <name>George Smith</name>
    <nation>Italy</nation>
    <carID>1</carID>
</owner>
<owner>
    <name>Gema Bio</name>
    <nation>Spain</nation>
    <carID>2</carID>
</owner>

费尔南多·伊扎
意大利
1.
乔治·史密斯
意大利
1.
吉马生物
西班牙
2.

我试图获得几个汽车中没有出现的国家的列表,然后找到那些来自这些国家的车主,但我不知道如何获得。您可以按国家对车主进行分组,然后向上看,是否有一个国家出现在多辆汽车下面:

for $owner in doc("cars.xml")//car/owner
group by $nation := $owner/nation
where count($owner/..) eq 1
for $o in $owner
return <owner>{
  $o/*,
  <carID>{$o/../id/text()}</carID>
}</owner>
用于文档中的$owner(“cars.xml”)//car/owner
按$nation分组:=$owner/nation
其中计数($owner/)等式1
对于$owner中的$o
返回{
$o/*,
{$o/./id/text()}
}

您尝试过什么?你能给我们看一下你的XQuery吗?这里有一个很好的提问规则。不要乞求。完全永远。好吧,对不起!我尝试了以下方法,以获得仅为一辆车出现的车主的国家。但我不知道该如何继续,或者这个开头是否对我有帮助:doc中的$c(“cars.xml”)//car中的$n(doc(“cars.xml”)//car/owner/nation/text())让$m:=$c/owner/nation/text()返回如果($n=$m),那么{$n}其他()
for $owner in doc("cars.xml")//car/owner
group by $nation := $owner/nation
where count($owner/..) eq 1
for $o in $owner
return <owner>{
  $o/*,
  <carID>{$o/../id/text()}</carID>
}</owner>