Vad är ett DomDocument?

Innehållsförteckning

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.

wave wave wave wave wave