AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
NAV
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.08.2008, 16:35   #1  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Если есть различные по формату XML файлы, но с общими для всех элементами, то можно ли сделать с помощью xml-порта загрузку значений этих элементов для любого из файлов?

Пример, чтоб было конкретнее понятно:

Есть xml-файл
Код:
<Root>
  <Header>
	<Type>Type1</Type> 
	<Version>1.0</Version> 
  </Header>
  <OtherElements>
  ...
  </OtherElements>
</Root>
Как грузить xml-портом значения Type и Version, но чтоб не возникала ошибка "Элемент <OtherElements> не ожидается."?

В принципе можно просматривать их ручками с помощью Automation на Microsoft XML, но мне кажется, что вариант с xml-портом был бы надёжнее
Старый 07.08.2008, 16:10   #2  
foxsoft2005 is offline
foxsoft2005
Участник
Аватар для foxsoft2005
 
93 / 10 (1) +
Регистрация: 21.11.2006
Думается, что надежнее будет использовать Xml.DOM, так как далеко не каждая структура xml-файла "кушается" xml-портом.
__________________
"И лишь патологоанатом не берет работу на дом" (с) Вишневский
Старый 07.08.2008, 17:19   #3  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Ну хз. Мне кажется всё таки максимально надёжнее решать задачи средствами навижена, чем каким-то внешними компонентами, но пока вообще не ясно можно ли такие XML-портом реализовать
Старый 28.08.2008, 13:03   #4  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
а как можно внутри XMLport`а получить имя обрабатываемого файла, если он вызывается XMLPORT.IMPORT(object_id,instream)?
Старый 28.08.2008, 16:19   #5  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
и ещё вопросик... почему не работает функция currXMLport.QUIT?
Старый 29.08.2008, 09:40   #6  
foxsoft2005 is offline
foxsoft2005
Участник
Аватар для foxsoft2005
 
93 / 10 (1) +
Регистрация: 21.11.2006
Цитата:
Сообщение от grif Посмотреть сообщение
а как можно внутри XMLport`а получить имя обрабатываемого файла, если он вызывается XMLPORT.IMPORT(object_id,instream)?
Напрямую нельзя. Если только передавать его в фунции xml-порта ПЕРЕД вызовом импорта...


Цитата:
Сообщение от grif Посмотреть сообщение
и ещё вопросик... почему не работает функция currXMLport.QUIT?
А с чего Вы взяли, что она не работает?
__________________
"И лишь патологоанатом не берет работу на дом" (с) Вишневский
Старый 29.08.2008, 15:46   #7  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Цитата:
Сообщение от FoxSoft2005 Посмотреть сообщение
Напрямую нельзя. Если только передавать его в фунции xml-порта ПЕРЕД вызовом импорта...
Передать его в функции не выйдет т.к.
Цитата:
он вызывается XMLPORT.IMPORT(object_id,instream)
Уже решил извратившись с помощью SingleInstance Codeunit



Цитата:
Сообщение от FoxSoft2005 Посмотреть сообщение
А с чего Вы взяли, что она не работает?
вызываю в любых местах XMLport... выполнение проходит эту строку, но не взирая ни на что продолжает работать, словно этой строки и не было

Опять же пришлось решить извратившись с помощью
Код:
IF XMLPORT.IMPORT(object_id,instream) THEN;
и вызова в XMLport`е
Код:
ERROR('')
Старый 02.09.2008, 11:52   #8  
foxsoft2005 is offline
foxsoft2005
Участник
Аватар для foxsoft2005
 
93 / 10 (1) +
Регистрация: 21.11.2006
Цитата:
Сообщение от grif Посмотреть сообщение
Передать его в функции не выйдет т.к..
Вызывайте функцию не глобальным сопоставлением (т.е. XMLPORT.IMPORT), а с использованием переменной типа XmlPort, перед этим вызывайте функцию передачи параметров...
__________________
"И лишь патологоанатом не берет работу на дом" (с) Вишневский
Старый 04.09.2008, 12:03   #9  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Нужно вызывать именно глобальным сопоставлением. В принципе вопросы не акутальны т.к. нашёл выход
Старый 06.09.2008, 09:20   #10  
Иван33 is offline
Иван33
Участник
 
38 / 10 (1) +
Регистрация: 15.12.2007
Цитата:
Сообщение от grif Посмотреть сообщение
Если есть различные по формату XML файлы, но с общими для всех элементами, то можно ли сделать с помощью xml-порта загрузку значений этих элементов для любого из файлов?

Пример, чтоб было конкретнее понятно:

Есть xml-файл
Код:
<Root>
  <Header>
	<Type>Type1</Type> 
	<Version>1.0</Version> 
  </Header>
  <OtherElements>
  ...
  </OtherElements>
</Root>
Как грузить xml-портом значения Type и Version, но чтоб не возникала ошибка "Элемент <OtherElements> не ожидается."?
xml надо подправить.
Код:
<Root>
<Document>  
<Header>
	<Type>Type1</Type> 
	<Version>1.0</Version> 
  </Header>
  <OtherElements>
  ...
  </OtherElements>
</Document>
</Root>
Старый 06.09.2008, 09:30   #11  
Иван33 is offline
Иван33
Участник
 
38 / 10 (1) +
Регистрация: 15.12.2007
Цитата:
Сообщение от grif Посмотреть сообщение
Если есть различные по формату XML файлы, но с общими для всех элементами, то можно ли сделать с помощью xml-порта загрузку значений этих элементов для любого из файлов?
скорее они разные по структуре, а не по формату. перед загрузкой любого из файлов его можно привести к общей структуре, которую поддерживает xml-порт.
Старый 09.09.2008, 11:05   #12  
grif is offline
grif
Участник
Аватар для grif
 
236 / 10 (1) +
Регистрация: 31.08.2006
Зачем править XML-файл, чтоб прочеть его XML-портом? Проще прочесть заголовок "ручками". Вопрос был в том, что можно ли прочесть XML-портом. Уже понял, что нельзя
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 02:12.