如何从“for xml path”获取结果?

Posted

技术标签:

【中文标题】如何从“for xml path”获取结果?【英文标题】:how to fetch result from "for xml path"? 【发布时间】:2010-12-21 21:05:02 【问题描述】:

现在我有一个存储过程(SQL 服务器),它将从“for xml path”语句返回一个 XML。我尝试使用 ExecuteXmlReader 和 ExecuteReader 读取响应,但我一无所获。 我用谷歌搜索了一段时间,但仍然找不到如何提取返回值,或者如何检索返回值。我应该使用 ExecuteXmlReader 吗?或者是其他东西? 谢谢。

con.Open();
        string result = "";
        XmlReader tmp = cmd.ExecuteXmlReader();

        while (tmp.Read())
        
            string s = tmp.Value;
        

        return result;

【问题讨论】:

【参考方案1】:

ReadOuterXml 方法如果位于元素或属性节点上,则返回当前节点及其所有子节点,否则返回空字符串。您可以通过索引或名称读取节点属性。

XmlReader tmp = cmd.ExecuteXmlReader();
tmp.Read();
while (!tmp.EOF) 
    string name = tmp["AttributeName"];
    string s = tmp.ReadOuterXml();

【讨论】:

事实证明这两种方法都有效。出了什么问题在我的 SP 中。但无论如何,谢谢 Phaedrus

以上是关于如何从“for xml path”获取结果?的主要内容,如果未能解决你的问题,请参考以下文章

在没有 REPLACE 功能的情况下使用“FOR XML PATH”时如何避免字符编码

Sql Server 中FOR XML PATH(‘‘)函数用法

Sql Server 中FOR XML PATH(‘‘)函数用法

sql查询语句for xml path语法

FOR XML PATH 的用法介绍

T-sql for xml path使用(转)