Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Ескейпинг при получения поля типа xml из БД / 8 сообщений из 8, страница 1 из 1
22.05.2007, 18:19
    #34543481
Hose
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ескейпинг при получения поля типа xml из БД
Подскажите, плиз, наиболее эффективный способ избавления от сабжевого эффекта при выполнении запроса. В табличке есть поля типа xml. Надо выполнить запрос, результат вернуть в датасет на клиенте, обработать его (результат) и сохранить датасет в виде XML. Затык произошел с тем, что поля у которых тип xml возвращаются на клиент с < > вместо угловых скобок. Как победить не знаю.

Буду признателен за помощь.
...
Рейтинг: 0 / 0
23.05.2007, 09:28
    #34544399
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ескейпинг при получения поля типа xml из БД
Тут тем много, ищи.
вот эта вполне рассмотрела почти все возможные варианты
...
Рейтинг: 0 / 0
25.05.2007, 08:55
    #34550194
Hose
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ескейпинг при получения поля типа xml из БД
я эту тему видел, конечно. Надо сказать она мало общего имеет с тем о чем я спрашиваю.
...
Рейтинг: 0 / 0
25.05.2007, 09:13
    #34550223
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ескейпинг при получения поля типа xml из БД
Покаж код xsl как отправляешь свои данные со скобками. И кусок xml из которого эти данные берешь.
Поправим :)
...
Рейтинг: 0 / 0
25.05.2007, 14:26
    #34551386
Hose
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ескейпинг при получения поля типа xml из БД
Просто подправить скобки я б наверное и сам смог...
Вопрос несколько в другом: можно ли SQL сервер заставить возвращать данные типа XML по человечьи...

Т.е. если я использую для возврата SELECT FOR XML то все тип топ. Но тут задача несколько другая. Надо заполнить на _клиенте_ некий датасет. Который получает с сервера в том числе и данные типа XML. Вот тут засада и наступает.
Когда я говорю датасет.GetXml() то в данных типа XML лажа... :(
...
Рейтинг: 0 / 0
25.05.2007, 14:36
    #34551434
SuSa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ескейпинг при получения поля типа xml из БД
Может тебе на форум посвещенный sql и серверной обработке данных сходить, там это поспрашивать?
...
Рейтинг: 0 / 0
25.05.2007, 14:37
    #34551442
Hose
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ескейпинг при получения поля типа xml из БД
HoseПросто подправить скобки я б наверное и сам смог...
Когда я говорю датасет.GetXml() то в данных типа XML лажа... :(
датасет.GetXml() возвращает что-то типа этого:
...
<Pos>1</Pos>
<ResDt>2007-03-13T14:43:51.083+03:00</ResDt>
<Defect>& lt;DEFECT& gt;& lt;LETTER& gt;01И-180/07& lt;/LETTER& gt;& lt;LETDT& gt;19.03.07& lt;/LETDT& gt;& lt;TYPER& gt;Брак производителя& lt;/TYPER& gt;& lt;QPERF& gt;Описание (жидкость с мелкокристаллической взвесью)& lt;/QPERF& gt;& lt;DocExtra_GUID& gt;E740A54F-62D2-4857-8FA5-48303E60DC76& lt;/DocExtra_GUID& gt;& lt;/DEFECT& gt;</Defect>
<LetterNx>2770</LetterNx>
...
без пробелов конечно...
Поле Defect в БД имеет тип XML.
...
Рейтинг: 0 / 0
28.05.2007, 11:05
    #34554665
dejavew
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ескейпинг при получения поля типа xml из БД
Hose... Поле Defect в БД имеет тип XML.
Это не важно, что тип поля в БД - XML, если не используется "специальный" провайдер для XML (т.е. "свзяка" FOR XML на сервере и метод ExecuteXmlReader() на клиенте) - то все содержимое поля с типом XML преобразуется в "просто длинный текст" для клиента (в твоем случае - для DataSet-а). К тому же, у DataSet-а XML (как технология) имеет "специальное внутреннее" предназначение - хранит структуру данных и значения состояний записей (т.н. diffgram), поэтому любое поле с типом данных XML внутри DataSet-а просто "обречено" быть "эскейпированным", потому что тогда сам DataSet не сможет работать нормально.
Так что, придется тебе использовать FOR XML + ExecuteXmlReader() - иначе никак...
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Ескейпинг при получения поля типа xml из БД / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]