Позднее связывание преобразования для синтаксиса импорта XML

У меня есть приложение Access, которое на самом деле является просто сервером автоматизации для нескольких офисных приложений (Word, Excel, Ppt и Outlook), принимает импортированную информацию, собирает ее через формы и создает все виды файлов.

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

Совсем недавно ребята помогли мне с переходом на позднюю привязку, чтобы уберечь меня от ненужных ссылок в целевой системе, убивающих функциональность. Работает отлично!

Итак, теперь у меня есть некоторый код импорта xml, для работы которого необходимо установить xml v5. Теперь проблема, с которой я сталкивался раньше, заключалась в том, что ссылки на библиотеки объектов Excel, Powerpoint и Outlook менялись с офисной версии на версию (2003 = 11.0, 2007 - 12.0 и т. Д.), Но мне интересно, возникнет ли у меня такая же проблема. Чтобы усложнить ситуацию, я понятия не имею, был ли сервер / операционная система, на которой он может работать (XP, Vista, 2003, 2008 SP2 и т. Д.) Честно говоря, я не знаю, будет ли это иметь значение, поэтому я упоминаю об этом.

Итак, если это действительно создаст проблему, то есть ли у кого-нибудь представление о примере преобразования с поздним связыванием для объявлений для этого? Это не похоже на создание и офисное приложение...

Sub PullingDataFromNodes()
   dim xmlDoc as MSXML2.DOMDocument50
   dim xmlNodeList As MSXML2.IXMLDOMNodeList
   dim myNode as MSXML2.IXMLDOMNode

   Set xmldoc = New MSXML2.DOMDocument50
   xmldoc.async = False
   xmldoc.Load ("C:/SomeFolder/xml.xml")

   Set xmlNodeList = xmldoc.SelectNodes("//DataFieldNode")
   Set myNode = xmlNodeList.item(0)

   'etc...more of the same....pull data from node, place data into variable, then place 
   '  data in variable into recordset, use it to update table kind of thing

Поэтому я попытался использовать CreateObject с этим, и он, похоже, не работает.... кто-нибудь может предложить и посоветовать с этим?

Я использую xmlImport, когда могу с argus...., но это конкретное решение для данных предоставляется через веб-приложение, для которого они не встраивают схему, и у меня нет таблицы стилей или.xsd

1 ответ

Решение

У меня был похожий код, который использует MSXML2.DOMDocument.3.0, поэтому я переключил его на 5, и он все еще работает. Я не знаю о разных версиях. Я могу только предложить вам попробовать это и посмотреть, что произойдет.

Sub PullingDataFromNodes()
   dim xmlDoc As Object
   dim xmlNodeList As Object
   dim myNode As Object

   Set xmldoc = CreateObject("MSXML2.DOMDocument.5.0")
   xmldoc.async = False
   xmldoc.Load "C:/SomeFolder/xml.xml"

   Set xmlNodeList = xmldoc.SelectNodes("//DataFieldNode")
   Set myNode = xmlNodeList.item(0)
Другие вопросы по тегам