xml – 如何在xQuery中获取没有子节点的节点?
发布时间:2020-12-16 23:09:05 所属栏目:百科 来源:网络整理
导读:所以我有两个元素节点,我基本上试图加入.我希望顶级节点保持不变,但子节点将被交叉引用的节点替换. 鉴于: stuff item foo="foo" boo="1"/ item foo="bar" boo="2" / item foo="baz" boo="3"/ item foo="blah boo="4""//stufflist a="1" b="2" foobar/foo fo
所以我有两个元素节点,我基本上试图加入.我希望顶级节点保持不变,但子节点将被交叉引用的节点替换.
鉴于: <stuff> <item foo="foo" boo="1"/> <item foo="bar" boo="2" /> <item foo="baz" boo="3"/> <item foo="blah boo="4""/> </stuff> <list a="1" b="2"> <foo>bar</foo> <foo>baz</foo> </list> 我想循环遍历“list”并在“stuff”中交叉引用元素以获得此结果: <list a="1" b="2"> <item foo="bar" boo="2" /> <item foo="baz" boo="3"/> </list> 我想这样做而不必知道“列表”上可能包含哪些属性.换句话说,我不想明确地将它们称为 attribute a { $list/@a },attribute b { $list/@b } 解决方法
使用:
$list1 / item [@foo = $list2 / item / @ foo] 这将选择所有< item> $list1中的元素,其foo属性的值等于< item>之一的foo属性. $list2中的元素. 为了复制< list>的所有属性元素,做这样的事情: for $attr in /whateverIsthePathLeadingToList/list/@* return attibute {name($attr)} {$attr} (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |