Гость
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / LoadXML Есть ли ограничения на размер строки XML? Как загрузить XML в несколько приемов? / 4 сообщений из 4, страница 1 из 1
05.10.2010, 13:02
    #36882176
chumansky
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LoadXML Есть ли ограничения на размер строки XML? Как загрузить XML в несколько приемов?
Метод loadXML(arg) объекта Msxml2.DOMDocument при некотором (порядка 500 000 символов) размере дает ошибку.

Я работаю с объектом Msxml2.DOMDocument из 1С77, Получаю строку содержащую XML от ВЭБ-Сервиса

Код: plaintext
1.
2.
3.
4.
5.
ДОМДок = СоздатьОбъект("Msxml2.DOMDocument"); 
ДОМДок.async =  0 ;
ДОМДок.resolveExternals =  0 ; 
ДОМДок.validateOnParse =  0 ; 
Результат = Сервис.getAccFactsSale(<data1>,<data2>);
ДОМДок.loadXML(Результат);

Когда строка "Результат" имеет небольшие размеры до примерно 500 000 символов все проходит гладко, но когда размеры больше, 1С вылетает.

Проверял похожий кусок кода на VB, все работает безупречно при любом размере строки "Результат". Получается дело в 1С, в том что она видимо не понимает слишком больших строк.

Внимание! Вопрос: Можно каким либо образом заставить в несколько приемов загрузить XML? Т.е.
Порвать строку XML на куски и выполнить метод loadXML по кускам. Может быть существуют другие способы загрузки XML?

Очень бы не хотелось записывать строку во временный XML файл и выполнять метод load .

Заранее благодарен!
...
Рейтинг: 0 / 0
08.10.2010, 23:18
    #36890453
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LoadXML Есть ли ограничения на размер строки XML? Как загрузить XML в несколько приемов?
chumansky Очень бы не хотелось записывать строку во временный XML файл и выполнять метод load .И тем не менее это единственный выход. Можно еще загрузить в IStream? а уже его скормить в метод load, но реализацию IStream придется писать на нормальном языке, а не на 1С или VB
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
24.03.2012, 13:04
    #37721249
Рыжик И.А.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LoadXML Есть ли ограничения на размер строки XML? Как загрузить XML в несколько приемов?
Попробуй файл загружать с помощью скрипта vbs.
Код в 1С 7.7 такой:

sc=createObject("MSScriptControl.ScriptControl");
sc.language="LoadXML";
strFunc="function textBase64()
|Set objXML = CreateObject(""MSXml2.DOMDocument"")
|objXML.loadXML """+Результат+"""
|end function";

sc.addCode(strFunc);
sc.run("LoadXML");

А вообще если результат получается http запросом объекта XMLHTTPServer, то у этого объекта есть
метод ResponseXML, который возвращает xml и можно работать сразу с ним без создания объекта MSXML2.DomDocument и загрузки
через метод LoadXML.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
06.11.2014, 11:27
    #38797080
dvk09
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LoadXML Есть ли ограничения на размер строки XML? Как загрузить XML в несколько приемов?
chumansky, Вопрос как-то решился или нет?
Столкнулся с такой-же проблемой...
...
Рейтинг: 0 / 0
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / LoadXML Есть ли ограничения на размер строки XML? Как загрузить XML в несколько приемов? / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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