Я уже пробовал сотни веб-сайтов и до сих пор не могу сопоставить элементы моего 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>