Я пытаюсь извлечь данные, использовать в корм RSS для Google Base в настоящее время с помощью 2005.результаты группирование в SQL Server 2005 с помощью XQuery
Там несколько проблем, которые есть, которые я надеюсь, может быть решена SQL Server !
- пространств имен
- группировки
Мой текущий 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>
Другое дело, я считаю, что исполнение запроса может быть ускорен путем удаления избыточных узлов, прежде чем искать через, и какие-либо советы о том, как я мог бы идти об этом!
Большое спасибо
Пространства имен и группировка могут выполняться в чистом XQuery. Невозможно точно сказать, как без источника ввода. Таблицы базы данных, столбцы и все стандартные вызовы SQL для движка XQuery будут специфичны для SLQ-сервера, который не является полным стандартом XQuery. –