Read/Write XML File


The XML format is used a lot and often to changing info between applications or as configuration files on which it is indicated how pages/tables must be created or something else.


So it is very useful know how to manage, Read and Write them; let's see how.


XML files constist of data grouped per type using a hierarchy. Suppose to have, for example, an XML structured in this manner:


<?xml version="1.0"?>














Legend (because it comes from the Italian site):

ElencoElementi = ElementsList

Elemento = Element

IDElemento = IDElement

ValoreElemento = ElementValue

Libro = Book


Suppose we'd like to put another Element who will have ID = "2" and the Value will be "Penna" (Pen). Suppose also that the file name is "element.xml" and it is stored in c:\temp. We'll write this code:





'***************** M A I N ************************


Dim objXMLDoc, oRootElement, oNodeElencoElementi, oNodeElemento
Dim oNodeElementoId, oNodeElementoVal, oNodeStrId, oNodeStrVal


Const myVar = "c:\temp\element.xml"
Const ID_ToAdd = "2"
Const ValueToAdd = "Penna"

       'MS XML DOM
       set objXMLDoc=CreateObject("Microsoft.XMLDOM")

       'loading xml file ---> myVar

       'the root element of the xml tree        
        set oRootElement = objXMLDoc.documentElement
       'I set the first element after root that is <ElencoElementi>
       'under whom I have to insert <Elemento>
       set oNodeElencoElementi = oRootElement.ChildNodes.Item(0)

            set oNodeElemento = objXMLDoc.createNode(1,"Elemento","")
            oNodeElencoElementi.appendChild oNodeElemento


               set oNodeElementoId = objXMLDoc.createNode(1,"IDElemento","")
               oNodeElemento.appendChild oNodeElementoId


                    set oNodeStrId = objXMLDoc.createNode(1,"string","")
                    oNodeStrId.Text = ID_ToAdd
                    oNodeElementoId.appendChild oNodeStrId



               set oNodeElementoVal = objXMLDoc.createNode(1,"ValoreElemento","")
               oNodeElemento.appendChild oNodeElementoVal


                     set oNodeStrVal = objXMLDoc.createNode(1,"string","")
                     oNodeStrVal.Text = ValueToAdd
                     oNodeElementoVal.appendChild oNodeStrVal


 set oNodeStrVal             = Nothing
 set oNOdeStrId              = Nothing
 set oNodeElementoVal     = Nothing
 set oNodeElementoId      = Nothing
 set oNodeElemento         = Nothing
 set oNodeElencoElementi = Nothing
 set oRootElement           = Nothing
 Set objXMLDoc              = Nothing




Il risultato sarà questo:





Let's see now how to read from an XML file. Suppose we want to read from the above file all "IDElemento".


To do this is possible to use the getElementsByTagName method of the oRootElement object. We'll do a cycle for all oRootElement.ChildNodes and show the "IDElemento" Value.



'********************* M  A  I  N ********************


Dim objXMLDoc, oRootElement, oNodeElementoId, i


Const myVar = "c:\temp\element.xml"

set objXMLDoc=CreateObject("Microsoft.XMLDOM")

'loading xml file ---> myVar

       'the root element of the xml tree         
       set oRootElement = objXMLDoc.documentElement


       set oNodeElementoID = oRootElement.getElementsByTagName("IDElemento")


       for i = 0 to oRootElement.childNodes.Length

          msgbox oNodeElementoID(i).childNodes(0).Text  



set oNodeElementoID = Nothing

set oRootElement      = Nothing






Pag: <<    <    >    >>