Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
Marklogic如何排除xml中的多个节点_Marklogic - Fatal编程技术网

Marklogic如何排除xml中的多个节点

Marklogic如何排除xml中的多个节点,marklogic,Marklogic,当排除元素中的多个节点(如“源”和“导航器”节点)时,我会出现语法错误。但是,如果在返回文档之前只排除一个节点,而不合并,那么它就可以工作 [(fn:local-name() != ("Sources","Navigators")] 在Marklogic Qconsole中: for $x in $uris let $doc := fn:doc($x) let $copymeta := <meta:Metadata> { $d

当排除元素中的多个节点(如“源”和“导航器”节点)时,我会出现语法错误。但是,如果在返回文档之前只排除一个节点,而不合并,那么它就可以工作

[(fn:local-name()  != ("Sources","Navigators")]
在Marklogic Qconsole中:

  for $x in $uris
  let $doc := fn:doc($x)
  let $copymeta := <meta:Metadata> 
                    { $doc//meta:Metadata/*[(fn:local-name() != ("Sources","Navigators")] }
                   </meta:Metadata> 
  let $newxml := <omd:record>
                   { $copymeta }
                 </omd:record>
  return $newxml
用于$uri中的$x
设$doc:=fn:doc($x)
let$copymeta:=
{$doc//meta:Metadata/*[(fn:local-name()!=(“源”、“导航器”)]}
让$newxml:=
{$copymeta}
返回$newxml

fn:local-name()
前面有太多的圆括号

但是,您也可以使用
except
关键字和前缀通配符

for $x in $uris
let $doc := fn:doc($x)
let $copymeta := <meta:Metadata> 
                   { $doc//meta:Metadata/(* except (*:Sources, *:Navigators)) }
                 </meta:Metadata> 
let $newxml := <omd:record>
                 { $copymeta }
               </omd:record>
return $newxml
用于$uri中的$x
设$doc:=fn:doc($x)
let$copymeta:=
{$doc//meta:Metadata/(*除了(*:Sources,*:Navigators))}
让$newxml:=
{$copymeta}
返回$newxml

HTH!

操作符的语义不直观。请参阅。当代码找到*:Sources节点时,它的计算结果为对“导航器”的
!=
,当它找到*:导航器节点时,它的计算结果为对“源”的
!=
。然后获得所有节点

如果不比较节点序列(因此除外,不是一个选项),则可以使用fn:not(A=B)来获得预期效果。在这种情况下,
fn:not(fn:local-name()=(“源”、“导航器”)
应按预期工作