所以我有我们的传统应用程序,这是经典的asp,我有一个看起来像这样的表:
CREATE TABLE ChangeRequests(
ChangeRequestsId int IDENTITY(1,1) NOT NULL,
XmlData nvarchar(max) NOT NULL)
当然“XmlData”中有xml。 Xml字符串如下所示:
<?xml version="1.0" encoding="utf-16"?>
<ArrayOfControlData xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<ControlData>
<Name>Email</Name>
<Value>hosehead@bugger.com</Value>
</ControlData>
<ControlData>
<Name>PreferredLanguage</Name>
<Value>English</Value>
</ControlData>
</ArrayOfControlData>
所以当我做其中一个时:
select XmlData from ChangeRequests
我希望得到上面的字符串。以下是我使用的一些代码,我希望得到以下结果:
Set rs = Server.CreateObject("ADODB.recordset")
rs.Open "select XmlData from ChangeRequests", Conn
rs.MoveFirst
Response.Write rs("XmlData") & "<br />"
我得到的结果就是这个cr4p:
Emailhosehead@bugger.comPreferredLanguageEnglish
毋庸置疑,我想要回复xml字符串。我有一个理论认为xml标签“”是个问题。
为了涵盖所做的任何其他假设,我正在使用MSSQL 2008&amp; IIS7。
有什么想法吗?任何帮助表示赞赏。
答案 0 :(得分:2)
我猜你实际上是在正确地获取XML。
您可能正在做的是直接将其输出到页面,期望它直接呈现。
您可以HTMLEncode XML以使其显示在页面上:
Response.Write Server.HTMLEncode(rs("XmlData")) & "<br />"
答案 1 :(得分:1)
或者,您可以执行以下操作。
Response.ContentType = "text/xml"
Response.Write(rs("XmlData")