How to update XML file from QTP

In previous QTP tutorial I shown how QTP can read data from XML file.
Today I will explain how to update XML data from QTP.

We will use this XML file:
Initial XML fileNote: You can download this XML file here.

Let's check how to update different values in above XML file:
  1. How to rename the title of first book?
    The QTP script is:
    Const XMLDataFile = "C:\TestData.xml"
    Const XMLNewFile = "C:\TestData2.xml"

    Set xmlDoc = CreateObject("Microsoft.XMLDOM")
    xmlDoc.Async = False
    xmlDoc.Load(XMLDataFile)


    ' update the title of the first book
    Set node = xmlDoc.SelectSingleNode("/bookstore/book[0]/title")
    node.Text = "Romeo and Juliet - Salvation"

    ' save changes

    xmlDoc.Save(XMLNewFile)
    And the result is:
    Note: The numeration begins from zero. That's why I use book[0] to access first item.


  2. How to change the year of second book?
    I skip the opening and saving of XML file (see above QTP script). I show only the essence:
    ' update the attribute of the second book
    Set node = xmlDoc.SelectSingleNode("/bookstore/book[1]/title/@published")
    node.Text = "2009"

    And the result is:
    Note: Use @ to access an attribute of XML node.


  3. How to add new author add its new attribute?
    QTP script:
    ' select a parent node
    Set parentNode = xmlDoc.SelectSingleNode("/bookstore/book[2]")

    ' add a new author
    Set newNode = xmlDoc.CreateElement("author")
    newNode.Text = "Mr. Noname"
    parentNode.AppendChild (newNode)
    And the result is:
    As you can see, we've added "Mr. Noname" as the new author.


  4. How to add new attribute for author (XML node)?
    QTP script:
    ' select a parent node
    Set parentNode = xmlDoc.SelectSingleNode("/bookstore/book[2]")

    ' add its attribute
    Set newAttrib = xmlDoc.CreateAttribute("bestseller")
    newAttrib.Text = "yes"
    parentNode.Attributes.SetNamedItem(newAttrib)
    The result is:
    New attribute of a boof and its value ("bestseller"="yes") have been added.

Well, the working with XML files from QTP is easy enough.


Summary:
  • shown in QTP - how to change value of XML node
  • shown in QTP - how to change value of attribute
  • shown in QTP - how to add new XML node
  • shown in QTP - how to add new attribute


Do you have any comments, dear reader? Please, leave them below the present article.
Thank you in advance :)



Related articles:


Do you like this QTP tutorial? Would you like to receive them in the future?
If yes, please subscribe to this blog RSS feed or by Email. (How to subscribe? VIDEO guide)




Do you know that you are free to use/copy/publish all my materials on your site/blog?