Показать сообщение отдельно
Старый 07.12.2011, 11:08   #1  
raniel is offline
raniel
Участник
Аватар для raniel
 
239 / 11 (1) +
Регистрация: 20.10.2006
Добрый день всем.
Передо мной встала задача провести выгрузку а затем загрузку данных в XML формате. Начал разбираться с XMLport-ами вначале. Почитав форум пришёл к выводу что нужно делать через XMLDOM.
Наваял простенький примерчик
Код:
rItem.RESET;
rItem.SETRANGE("No.",'1000','9000');
CREATE(XMLDocOut);

ProcesType := '';
XMLCurrNode := XMLDocOut.documentElement;
WITH XMLDOMManagement DO BEGIN
  IF AddElement(
    XMLCurrNode,'NO',
    rItem."No.",DocNameSpace,XMLNewChild) > 0
  THEN
    EXIT;
  IF AddElement(
    XMLCurrNode,'DESCRIPTION',
    rItem.Description,DocNameSpace,XMLNewChild) > 0
  THEN
    EXIT;
  IF AddElement(
    XMLCurrNode,'UNIT_PRICE',
    FORMAT(rItem."Unit Price"),DocNameSpace,XMLNewChild) > 0
  THEN
    EXIT;
END;
XMLDocOut.save(path);
Выдаёт ошибку:
Цитата:
Не создан экземпляр этой переменной автоматизации.
Чтобы создать экземпляр, можно создать новую переменную или присвоить значение существующей.
Ошибку выдало на AddElement.
Решил упростить пример... точнее позаимствовал до нельзя простенький пример из форума http://forum.mazzy.ru/index.php?show...63&#entry28563
Код:
CREATE(xmlDocument);
xmlDocument.load(path);
xmlHeader := xmlDocument.documentElement;

xmlRecord := xmlDocument.createNode('element','Record',''); // тут ошибка


xmlHeader.appendChild(xmlRecord);
xmlDocument.save(path);
И на выделенной строке выходит таже ошибка. Анализируя существующие примеры в NAV убедился что именно так и нужно писать.
Версия NAV 2009. XMLDOM пробовал 3-ю версию и 6-ю.
Что я не так делаю?
Признаюсь честно до этого с XML не работал. Поэтому буду очень признателен за рабочий кусок кода выгрузки из какой либо таблицы(по фильтру), выбранных полей в XML.
Заранее спасибо!