Ett DomDocument är en behållare (variabel/objekt) för att hålla ett XML -dokument i din VBA -kod.
Precis som du använder en strängvariabel för att hålla ett strängvärde kan du använda ett DomDocument för att hålla ett XML -dokument.
(för en fullständig lista över DomDocuments -egenskaper, se halvvägs ner på denna sida)
Varför bryr jag mig om vad ett DomDocument är?
Excel har några mycket intuitiva sätt att flytta XML till ett kalkylblad (XML -kartor), men:
• Vad händer om du vill manipulera data efter att du har hämtat den, men innan data visas i dina celler?
• Vad händer om du vill importera XML -data till kontroller istället för mappade celler, som kombinationsrutor, etiketter eller textrutor?
Båda dessa uppgifter är svåra (om inte omöjliga) att utföra med XML -kartor. Vi kan emellertid importera XML -data till ett DomDocument och sedan dra ut den data vi behöver, skriva till kontroller, filtrera data eller manipulera data innan de visas i ett kalkylblad.
Hur laddar jag XML i ett DomDocument?
Följande exempel använder Excel 2003. I Visual Basic Editor Gå till verktygs-> Referenser och markera en kryssruta för "Microsoft XML v5.0"
Nu behöver vi lite XML. Nyligen skapade jag en Google -webbplatskarta för den här webbplatsen, och den är i XML, så låt oss använda det: AutomateExcel Google XML -webbplatskarta
För att ladda mitt SiteMap XML -dokument till ett DomDocument -objekt i Excel, använd följande kod (som kommenteras förklarar saker):
1234567891011121314151617181920212223242526272829303132333435 | Sub DomDocumentBasic ()Dim oDom som MSXML2.DOMDocument'Skapa DomDocument -objektetAnge oDom = CreateObject ("MSXML2.DOMDocument")'Ladda hela dokumentet innan du går vidareoDom.async = Falskt'Validera inteoDom.validateOnParse = FalsktoDom.Load ("AutomateExcel Google XML -webbplatskarta")MsgBox oDom.XMLAvsluta Sub |
Koden laddar helt enkelt XML och visar den i en meddelanderuta:
Obs! Om du laddar XML från en URL och har problem, se till att du inte glömde raden "oDom.async = Falskt“.
Hur går jag igenom DomDocument?
Nu när jag har XML -data i ett objekt, hur "gör jag något" med det?
LOL, jag lär mig fortfarande den här delen. Jag lägger ut grunderna i ett framtida inlägg och släpper en länk till det här.
Inläggets titel var "Vad är ett DomDocument", förhoppningsvis har du en idé nu.