Вы находитесь на странице: 1из 3

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:

Not
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)
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:

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