Xquery使用查找列表删除类型查询
需要帮助构造xquery从包含Google产品数据源数据的XML文件中删除数据 我在电子表格列中有一长串需要删除的ID号,这些都是数字 下面是xml模式。我需要选择所有记录,其中=我的数字字符串,然后从文件中删除它们 谢谢你的帮助Xquery使用查找列表删除类型查询,xquery,xquery-update,Xquery,Xquery Update,需要帮助构造xquery从包含Google产品数据源数据的XML文件中删除数据 我在电子表格列中有一长串需要删除的ID号,这些都是数字 下面是xml模式。我需要选择所有记录,其中=我的数字字符串,然后从文件中删除它们 谢谢你的帮助 <rss version="2.0" xmlns:g="http://base.google.com/ns/1.0"> <channel> <title></title> <link></
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title></title>
<link></link>
<description></description>
<item>
<title></title>
<link></link>
<description></description>
<g:id></g:id>
<g:condition></g:condition>
<g:price></g:price>
<g:availability></g:availability>
<g:image_link></g:image_link>
<g:brand></g:brand>
<g:mpn></g:mpn>
<g:product_type></g:product_type>
</item>
</channel>
</rss>
使用
如果您不想接触原始数据,请使用
=与某些集合语义相比,如果左侧的项等于右侧的项,则返回true。此XQuery:
应用于提供的XML文档时:
生成所需的正确结果:
谢谢,我也通过你的链接发现了xbase。我安装了它,现在正在学习。所以我将xml文档添加到一个新的数据库中,打开它,然后在编辑器中粘贴查询,得到未定义的变量$x。我该怎么定义它呢?哦,对不起,$x刚刚包含了我的XML代码片段,用于测试。如果打开数据库,只需将其删除即可。对于其他系统,您可能需要添加docwhatever。谢谢Dimitre!这对我很有效。我相信另一个回答也会,但我不确定如何处理这个变量。BaseX的新手。@DanM:我很高兴我的回答很有用。如果是这样的话,请按照so表达感激之情的既定方式,接受答案好吗?这是通过单击答案旁边的复选标记来完成的。@DanM:我已经用一个更简单的解决方案更新了我的答案。谢谢,我检查了我的新答案,所以还不知道这一点:
delete node doc("mydata.xml")//item[g:id = (1, 3, 5, 6, 8, 9, 12)]
copy $c := doc("mydata.xml")/
modify delete node $c//item[g:id = (1, 3, 5, 6, 8, 9, 12)]
return $c
declare namespace g = "http://base.google.com/ns/1.0";
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
{
let $vIds := (1,3)
return
/*/*/*[not(g:id = $vIds)]
}
</channel>
</rss>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title></title>
<link></link>
<description></description>
<item>
<title>Item 1</title>
<link></link>
<description></description>
<g:id>1</g:id>
<g:condition></g:condition>
<g:price></g:price>
<g:availability></g:availability>
<g:image_link></g:image_link>
<g:brand></g:brand>
<g:mpn></g:mpn>
<g:product_type></g:product_type>
</item>
<item>
<title>Item 2</title>
<link></link>
<description></description>
<g:id>2</g:id>
<g:condition></g:condition>
<g:price></g:price>
<g:availability></g:availability>
<g:image_link></g:image_link>
<g:brand></g:brand>
<g:mpn></g:mpn>
<g:product_type></g:product_type>
</item>
<item>
<title>Item 3</title>
<link></link>
<description></description>
<g:id>3</g:id>
<g:condition></g:condition>
<g:price></g:price>
<g:availability></g:availability>
<g:image_link></g:image_link>
<g:brand></g:brand>
<g:mpn></g:mpn>
<g:product_type></g:product_type>
</item>
</channel>
</rss>
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:g="http://base.google.com/ns/1.0" version="2.0">
<channel>
<title/>
<link/>
<description/>
<item>
<title>Item 2</title>
<link/>
<description/>
<g:id>2</g:id>
<g:condition/>
<g:price/>
<g:availability/>
<g:image_link/>
<g:brand/>
<g:mpn/>
<g:product_type/>
</item>
</channel>
</rss>