Visual Basic for Applications:
Työskentely XML:n kanssa
Kuinka:
Aloittaaksesi vuorovaikutuksen XML:n kanssa, yleensä käytetään MSXML2.DOMDocument
-objektia. Tämä rajapinta mahdollistaa sinun ladata, jäsentää ja navigoida XML-dokumentteja. Alla on yksinkertainen esimerkki, joka näyttää miten XML-tiedosto ladataan, navigoidaan sen rakenteessa ja luetaan attribuutteja sekä tekstisisältöä.
' Varmista ensin, että olet lisännyt viitteen "Microsoft XML, v6.0" kautta Työkalut -> Viitteet
Dim xmlDoc As MSXML2.DOMDocument60
Set xmlDoc = New MSXML2.DOMDocument60
xmlDoc.async = False
xmlDoc.Load("C:\Polku\Tiedostoosi\File.xml") ' Lataa XML-tiedostosi
' Tarkista, ladattiinko XML onnistuneesti
If xmlDoc.parseError.ErrorCode <> 0 Then
MsgBox "Virhe XML:n latauksessa:" & xmlDoc.parseError.reason
Else
' Navigoi ja lue elementtejä
Dim book As IXMLDOMNode
Set book = xmlDoc.SelectSingleNode("//book/title") ' XPath löytääkseen ensimmäisen <title> sisällä <book>
MsgBox book.Text ' Näytä otsikon teksti
End If
Yllä olevassa esimerkissä luomme MSXML2.DOMDocument60
:n instanssin, lataamme XML-tiedoston ja tarkistamme virheet. Jos virheitä ei löydy, navigoimme tiettyyn solmuun käyttämällä XPathia ja näytämme sen tekstisisällön.
Syväsukellus:
XML-ominaisuuksien integrointi VBA:han ulottuu 2000-luvun alkuun, jolloin Office-sovellusten tarve olla yhteydessä webin tietoihin ja palveluihin kasvoi. MSXML
-kirjasto, eli Microsoft XML Core Services, on kehittynyt vuosien aikana, ja MSXML2.DOMDocument60
on yksi uusimmista suositelluista versioista käytettäväksi sen parantuneen suorituskyvyn ja turvallisuusominaisuuksien vuoksi.
Vaikka tehokas, VBA:n XML-käsittelyominaisuuksia pidetään vähemmän tehokkaina ja hankalampina verrattuna nykyaikaisiin ohjelmointiympäristöihin, kuten Pythonin XML.etree tai C# LINQ to XML. VBA:n luonnollinen sanarikkaus ja manuaalinen viitteiden lisääminen ja hallinta voivat estää nopean kehityksen. Lisäksi, JSONin yleistyessä kevyempänä tiedonvaihtoformaattina, monet ohjelmoijat ja sovellukset ovat siirtyneet pois XML:stä, ellei sen käyttöä edellytetä yhteentoimivuuden tai tiettyjen yrityspalveluiden kanssa.
Kuitenkin tehtävissä, jotka vaativat XML-dokumenttien jäsentämistä tai tuottamista Microsoft Office -automaation kontekstissa, VBA:n XML-käsittelyominaisuuksien hyödyntäminen pysyy elinkelpoisena ja joskus välttämättömänä lähestymistapana. Tämä luo tasapainon Office-sovellusten rikkaan ominaisuusjoukon ja XML:n tarjoamien rakenteellisten tietojen käsittelykyvykkyyksien välille.