2012-01-03 68 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