DomDocument - это контейнер (переменная / объект) для хранения XML-документа в вашем коде VBA.
Так же, как вы используете строковую переменную для хранения строкового значения, вы можете использовать DomDocument для хранения XML-документа.
(полный список свойств DomDocuments см. в середине страницы)
Почему меня волнует, что такое DomDocument?
В Excel есть несколько очень интуитивно понятных способов переноса XML в электронную таблицу (XML Maps), но:
• Что делать, если вы хотите манипулировать данными после того, как вы их получили, но до того, как данные появятся в ваших ячейках?
• Что делать, если вы хотите импортировать данные XML в элементы управления вместо сопоставленных ячеек, таких как поля со списком, метки или текстовые поля?
Обе эти задачи сложно (если не невозможно) выполнить с помощью карт XML. Однако мы можем импортировать XML-данные в DomDocument, затем извлечь нужные нам данные, записать их в элементы управления, отфильтровать данные или манипулировать данными до того, как они появятся в электронной таблице.
Как загрузить XML в DomDocument?
В следующем примере используется Excel 2003. В редакторе Visual Basic перейдите в Инструменты-> Ссылки и установите флажок «Microsoft XML v5.0».
Теперь нам нужен XML. Недавно я создал карту сайта Google для этого сайта, и она в XML, поэтому давайте воспользуемся этим: AutomateExcel Google XML Sitemap
Чтобы загрузить мой XML-документ SiteMap в объект DomDocument в Excel, используйте следующий код (который поясняется с комментариями):
1234567891011121314151617181920212223242526272829303132333435 | Sub DomDocumentBasic ()Dim oDom как MSXML2.DOMDocument'Создать объект DomDocumentУстановите oDom = CreateObject ("MSXML2.DOMDocument")'Загрузите весь документ перед тем, как продолжитьoDom.async = Ложь'Не проверятьoDom.validateOnParse = ЛожьoDom.Load ("AutomateExcel Google XML Sitemap")MsgBox oDom.XMLКонец подписки |
Код просто загружает XML и отображает его в окне сообщения:
Примечание. Если вы загружаете XML с URL-адреса и у вас возникли проблемы, убедитесь, что вы не забыли строку «oDom.async = Ложь“.
Как пройти через DomDocument?
Теперь, когда у меня есть XML-данные в объекте, как мне «что-то сделать» с ними?
LOL, я все еще изучаю эту часть. Я опубликую основы в одном из следующих постов и дам ссылку здесь.
Заголовок сообщения был «Что такое DomDocument», надеюсь, теперь у вас есть идея.