Так что я получил наше наследие приложение, которое является классическим осина и у меня есть таблица, которая выглядит следующим образом:Чтение Xml Строка из БД в классическом 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>[email protected]</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:
[email protected]
Излишне говорить, что я хотел бы строку XML обратно. У меня есть теория, что xml-тег «» является проблемой.
Просто для того, чтобы покрыть любые другие допущения, я нахожусь на MSSQL 2008 & IIS7.
Любые идеи? Любая помощь приветствуется.
Похоже, вы пропускаете все теги XML и видите только текстовые узлы - вы просматриваете это в браузере как HTML? Вы сделали источник просмотра, чтобы узнать, действительно ли вы получаете текстовые узлы? – Oded
Вы уверены, что не вернете свою полную строку. Response.Write может отправлять его с кодировкой HTML, поэтому теги могут быть там, просто не видны, потому что они не распознаются браузером. –
ahh cr4p. Да, это было правильно с самого начала. Наверное, мне нужна вторая пара (или третья) пара глаз. Спасибо, ребята, –