【问题标题】:SQL Server, getting "for xml" valueSQL Server,获取“for xml”值
【发布时间】:2012-09-26 18:31:57
【问题描述】:

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

我在 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?

【问题讨论】:

标签: sql-server asp-classic for-xml


【解决方案1】:

找到answer in SQL Server forum。可能有一种更简洁的方法可以做到这一点,但帖子中的想法是将 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) 读取返回值。

【讨论】:

    【解决方案2】:

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

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

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

    它以varchar 的形式返回给我XML 输出。

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      • 2021-08-05
      • 1970-01-01
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 2016-11-08
      相关资源
      最近更新 更多