Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
Xml 如果元素已经存在,xquery将跳过这些元素_Xml_Xslt_Xquery_Exist Db - Fatal编程技术网

Xml 如果元素已经存在,xquery将跳过这些元素

Xml 如果元素已经存在,xquery将跳过这些元素,xml,xslt,xquery,exist-db,Xml,Xslt,Xquery,Exist Db,一美元是 通过连接序列并使用谓词表达式过滤第二个序列,无需循环即可更简单地解决此问题: for $l in $a for $m in $b return if ($m/@name!=$l/@name) 我已经编辑了这个问题,并在$b中添加了另一个子元素。我尝试了“按@name($a |$b[not(@name=$a/@name)])分组”,将输出中具有相同@name的元素分组。这是正确的方法吗?@thefragmenter否,要使用分组依据或排序依据,必须使用for…(循环

一美元是


通过连接序列并使用谓词表达式过滤第二个序列,无需循环即可更简单地解决此问题:

for $l in $a
    for $m in $b
      return if ($m/@name!=$l/@name)

我已经编辑了这个问题,并在$b中添加了另一个子元素。我尝试了“按@name($a |$b[not(@name=$a/@name)])分组”,将输出中具有相同@name的元素分组。这是正确的方法吗?@thefragmenter否,要使用
分组依据
排序依据
,必须使用
for…
(循环)表达式。但是,在您的示例中,按@name分组没有任何作用,因为表达式的设计使得所有@name都是唯一的。
(<pet name="a2">
<age num="9"/>
</pet>,
<pet name="a3">
<age num="11"/>
</pet>
<pet name="a3">
<age num="14"/>
</pet>
(<pet name="a1">
<age num="1"/>
</pet>,
<pet name="a2">
<age num="2"/>
</pet>,
<pet name="a3">
<age num="11"/>
<age num="14"/>
</pet>)
for $l in $a
    for $m in $b
      return if ($m/@name!=$l/@name)
($a | $b[not(@name = $a/@name)])