Я пытаюсь импортировать данные из XML-ответа в лист Excel, и у меня возникают трудности с повторяющимися дочерними узлами под одним родительским узлом. Мне нужно иметь возможность импортировать категории CategoryID, CategoryName и CategoryParentName для каждой категории. Я смог получить первые два, но не могу определить значение CategoryParentName с момента его повторения. XML выглядит следующим образом.VBA Импорт нескольких дочерних элементов XML под одним родительским узлом
<GetSuggestedCategoriesResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Timestamp>2010-01-19T22:08:02.568Z</Timestamp>
<Ack>Success</Ack>
<Version>647</Version>
<Build>E647_CORE_BUNDLED_10438248_R1</Build>
<SuggestedCategoryArray>
<SuggestedCategory>
<Category>
<CategoryID>18871</CategoryID>
<CategoryName>Memory Cards</CategoryName>
<CategoryParentID>625</CategoryParentID>
<CategoryParentID>3327</CategoryParentID>
<CategoryParentID>18866</CategoryParentID>
<CategoryParentName>Cameras & Photo</CategoryParentName>
<CategoryParentName>Camera Accessories</CategoryParentName>
<CategoryParentName>Digital Camera Accessories</CategoryParentName>
</Category>
<PercentItemFound>4</PercentItemFound>
</SuggestedCategory>
<SuggestedCategory>
<Category>
<CategoryID>48629</CategoryID>
<CategoryName>Color</CategoryName>
<CategoryParentID>293</CategoryParentID>
<CategoryParentID>14948</CategoryParentID>
<CategoryParentID>48633</CategoryParentID>
<CategoryParentID>48638</CategoryParentID>
<CategoryParentID>48628</CategoryParentID>
<CategoryParentName>Electronics</CategoryParentName>
<CategoryParentName>Gadgets</CategoryParentName>
<CategoryParentName>Surveillance</CategoryParentName>
<CategoryParentName>Surveillance Cameras</CategoryParentName>
<CategoryParentName>Wired Cameras</CategoryParentName>
</Category>
<PercentItemFound>4</PercentItemFound>
</SuggestedCategory>
Вот моя попытка для кода VBA. Любая помощь очень ценится!
Sub CategoryResponse()
Outputrow = Sheet1.Range("E1") + 7
Nodes = "GetSuggestedCategoriesResponse/SuggestedCategoryArray/SuggestedCategory"
For Each CAT In responseItem.SelectNodes(Nodes)
Outputcol = 3
Sheet1.Range("A" & Outputrow).Value = CAT.SelectSingleNode("PercentItemFound").Text
Sheet1.Range("B" & Outputrow).Value = CAT.SelectSingleNode("Category/CategoryID").Text
Nodes1 = "GetSuggestedCategoriesResponse/SuggestedCategoryArray/SuggestedCategory/CategoryParentName"
For Each PAR In responseItem.SelectNodes(Nodes1)
Sheet1.Cells(Outputrow, Outputcol).Value = PAR.SelectSingleNode("CategoryParentName").Text
Outputcol = Outputcol + 1
Next PAR
Sheet1.Cells(Outputrow, Outputcol).Value = UST.SelectSingleNode("Category/CategoryName").Text
Outputrow = Outputrow + 1
Next UST
End Sub
Спасибо! Я вижу, что я сейчас делаю неправильно. Код работает отлично. Честно говоря, этот проект - моя первая кодировка, отличная от arduino и labview, поэтому я очень ценю помощь! –