2012-01-03 67 views
0

我有一个存储过程返回如下2个XML结果集:如何在列数据本身在xml中时从DataSet获取Xml数据?

SELECT 1 as SiteID 
FOR XML PATH('FirstResultSet'), TYPE 

SELECT 1 as UserID 
FOR XML PATH('SecondResultSet'), TYPE 

我遇到我的存储过程,并得到了DataSet对象。

我叫的getXML方法,并得到了XML:

string xml = dataSet.GetXml(); 

但XML是下面这不是预期的格式:

<NewDataSet> 
<Table><Column1>&lt;FirstResultSet&gt;&lt;SiteID&gt;1&lt;SiteID&gt;&lt;FirstResultSet&gt;</Column1></Table> 
<Table1><Column1>&lt;SecondResultSet&gt;&lt;UserID&gt;1&lt;UserID&gt;&lt;SecondResultSet&gt;</Column1></Table1> 
</NewDataSet> 

正如你所看到检索到的文本被处理作为文本而不是xml。

如何从中获取xml?我知道我可以替换“<”和“>”,但是有没有内置的方法可以让这个更容易,更快捷,性能更好?

string xml = dataSet.GetXml().Replace("&lt;", "<").Replace("&gt;", ">"); 

感谢,

+0

您是否尝试过:'string xml = Server.HtmlDecode(dataSet.GetXml());'? http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx – 2012-01-03 12:00:51

回答

1

尝试:

string xml = Server.HtmlDecode(dataSet.GetXml()); 

http://msdn.microsoft.com/en-us/library/7c5fyk1k.aspx

也许你需要完全相反:

string xml = Server.HtmlEncode(dataSet.GetXml()); 

http://msdn.microsoft.com/en-us/library/w3te6wfz.aspx

+0

谢谢,HtmlDecode会做。它会比Replace方法有更高的性能吗?有什么优势? – 2012-01-03 12:07:11

+0

Look:http://stackoverflow.com/a/6209534/284240同样适用于HtmlDecode。 – 2012-01-03 12:08:41