我正在尝试提取数据,以用于当前使用 SQL Server 2005 的 google base 的 rss 提要。
我们遇到了一些问题,希望可以解决!
- 命名空间
- 分组
我当前的sql如下:
SELECT [xml].query('
<Item xmlns:g="a">
<Title>{ data(*/*/*/Title) }</Title>
<g:id>{ sql:column("ReportingCode") }</g:id>
</Item>
')
FROM esh_xml
where [Xml].value('(/*/*/*/Attributes/Attribute[@Description="Category"][text()="MasterMix"])[1]','nvarchar(2000)') is not null
作为当前查询的输出,我得到了数千个结果行,即
<item xmlns:g="a"><title>blah blah</title><g:id>asdasd<g:id></item>
我想要的输出是
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:g="http://base.google.com/ns/1.0">
<channel>
<title>Mastermixdigital.com Product Feed </title>
<link> http://www.mysite.com/ </link>
<description>mastermix latest release feed </description>
<item xmlns:g="a">
<title>blah blah</title>
<g:id>asdasd<g:id>
</item>
<item xmlns:g="a">
<title>blah blah</title>
<g:id>asdasd<g:id>
</item>
<item xmlns:g="a">
<title>blah blah</title>
<g:id>asdasd<g:id>
</item>
</channel>
</rss>
另一件事我相信可以通过在搜索之前删除冗余节点来加速查询的执行,以及关于我如何解决这个问题的任何提示!
非常感谢