2

我认为这很简单,但我似乎无法找到答案。

我在 SQL Server 2005 上运行查询,for xml, elements最后以 XML 形式返回结果。

select top 10 title, pubdate, description, link
from rssfeed item
for xml auto, elements

我正在从经典的 ASP 页面运行查询。通常要从列中获取结果,我会使用rs.Fields.Item("colName"). 问题是,for xml列名是一个长字符串,如XML_F52E2B61-....

我试过了rs.Fields(0).value。这奇怪地返回了查询中由问号分隔的列的名称,而不是 XML。我的输出是:

?title?pubdate?description?link?item?L???

我在 Management Studio 中测试了我的查询,XML 看起来没问题。有没有办法将此值读入经典 ASP?

4

2 回答 2

3

在 SQL Server 论坛中找到了答案。可能有一种更简洁的方法可以做到这一点,但帖子中的想法是将 XML 转换为 varchar(max)。

DECLARE @xmlout as varchar(max);
DECLARE @X as Xml;

set @X = (select top 10 title, pubdate, description, link
from rssfeed item
for xml auto, elements);

select @xmlout = cast(@X as varchar(max));
select @xmlout;

运行查询后,我将使用rs(0)它来读取返回的值。

于 2012-09-26T20:18:14.527 回答
0

@dangowans 的另一个答案非常好。我来到这里寻找类似问题的解决方案。

但是,我可以在不使用存储过程之类的东西的情况下进行管理,并使用这样的单个查询进行管理:

Select k=(select top 10 title, pubdate, description, link
from rssfeed item
for xml auto, elements)

它返回给我的 XML 输出为varchar.

于 2013-10-06T11:37:20.507 回答