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:
Note: 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/@publishe d") node.Text = "2009" And the result is:
e: 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)
Not
And the result is:
you can see, we've added "Mr. Noname" as the new author.
As
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:
N ew 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