需要帮助构建xquery以从包含Google产品数据Feed数据的XML文件中删除数据。
我在电子表格列中有一长串需要删除的ID号 - 这些是数字。
下面是xml架构。我需要选择<g:id>
=“我的数字串”的所有记录,然后从文件中删除它们。
感谢您的帮助!
<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>
答案 0 :(得分:1)
使用XQuery-Update delete
-function
delete node doc("mydata.xml")//item[g:id = (1, 3, 5, 6, 8, 9, 12)]
如果您不想触摸原始数据,请使用modify
。
copy $c := doc("mydata.xml")/
modify delete node $c//item[g:id = (1, 3, 5, 6, 8, 9, 12)]
return $c
=
与某些set-semantics相比,如果左边的项目中的项目与右边的项目相等,则返回true。
答案 1 :(得分:1)
此XQuery :
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>
应用于提供的XML文档:
<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>