Карта XML элементов в столбцах в Excel с VBA - PullRequest
0 голосов
/ 21 января 2020

Я уже пробовал сотни веб-сайтов и до сих пор не могу сопоставить элементы моего XML со столбцами в Excel.

Наиболее близким решением является следующее:

https://flylib.com/books/en/2.485.1.129/1/

, а также эта тема:

Автоматически сопоставлять Excel XmlMap с рабочим листом в VBA, не зная схемы XPaths

Итак, я знаю, как загрузить карту XML в источник XML с VBA (это легко часть):

например,

Sub Load()

ActiveWorkbook.XmlMaps.Add("C:\New Folder\sample_map.xml", "BATCH").Name = "BATCH_Map"

End Sub

Не могли бы вы посоветовать? Как сопоставить например <FIRST_NAME>CAT</FIRST_NAME> с B1? Если я знаю, как сделать это с одним, остальное должно последовать хорошо. Большое спасибо

Содержание XML:

- <BATCH xmlns="XXX">
- <HEADER>
  <COUNT>2</COUNT>
  <ORIGINATOR>XXYY</ORIGINATOR>
  </HEADER>
- <SUBMISSIONS>
- <SUBMISSION>
- <SUB_HEADER>
- <EVENTS>
- <EVENT>
  <CODE>RF01</CODE>
  <OPERATION>I</OPERATION>
  </EVENT>
  </EVENTS>
- <NOTES>
  <NOTE type="ACT" privacyLevel="PRIV">test</NOTE>
  </NOTES>
  </SUB_HEADER>
  <PRODUCT>NONSTANDARDREF</PRODUCT>
  <DATE>2020-01-01</DATE>
  <IDENTIFIER>X1</IDENTIFIER>
  <CLASSIFICATION>ACCEPT</CLASSIFICATION>
  <CATEGORY>AAA</CATEGORY>
- <PER_REF>
  <FIRST_NAME>CAT</FIRST_NAME>
  <SURNAME>DOG</SURNAME>
  <DOB>1800-01-01</DOB>
  <STATUS>OPEN</STATUS>
- <PER_REF_AD>
  <BUILDING_NAME>CASTLE</BUILDING_NAME>
  <STREET>TEST</STREET>
  <POST_TOWN>TEST</POST_TOWN>
  <COUNTY>TEST</COUNTY>
  <POSTCODE>AA1 1AA</POSTCODE>
  <STATUS>OPEN</STATUS>
  </PER_REF_AD>
  </PER_REF>
  </SUBMISSION>
- <SUBMISSION>
- <SUB_HEADER>
- <EVENTS>
- <EVENT>
  <CODE>A1</CODE>
  <OPERATION>I</OPERATION>
  </EVENT>
  </EVENTS>
- <NOTES>
  <NOTE type="XXX" privacyLevel="XXXX">test1</NOTE>
  </NOTES>
  </SUB_HEADER>
  <PRODUCT>Ec</PRODUCT>
  <DATE>2020-02-02</DATE>
  <IDENTIFIER>AB1</IDENTIFIER>
  <CLASSIFICATION>ACCEPT</CLASSIFICATION>
  <CATEGORY>AAA</CATEGORY>
- <PER_REF>
  <FIRST_NAME>ELEPHANT</FIRST_NAME>
  <SURNAME>HIPPO</SURNAME>
  <DOB>1900-02-02</DOB>
  <STATUS>OPEN</STATUS>
- <PER_REF_AD>
  <BUILDING_NAME>1</BUILDING_NAME>
  <STREET>TEST</STREET>
  <POST_TOWN>TEST</POST_TOWN>
  <COUNTY>TEST</COUNTY>
  <POSTCODE>BB1 1BB</POSTCODE>
  <STATUS>OPEN</STATUS>
  </PER_REF_AD>
  </PER_REF>
  </SUBMISSION>
  </SUBMISSIONS>
  </BATCH>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...