1
我試圖從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之外的代碼,所以我非常感謝幫助! –