get xml query result

Description

Query an XML string by XPath.

Arguments

Notes

Applicable Built-In Settings

The following settings are applicable to this action: remove double quotes from cells.

Applicable Controls

This action is applicable to the following controls: none.

Example - Case 1: Using an XPath predicate in an XPath query

The following example retrieves the text from the title element of the first book element that is a child of a bookstore element.

<?xml version="1.0"?>
<bookstore>
  <book id="bk101" category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30</price>
  </book>
  <book id="bk102" category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>35</price>
  </book>
</bookstore>

Action Lines

Result

Example - Case 2: Using an XPath function in an XPath query

The following example returns the sum of all price nodes.

<?xml version="1.0"?>
<bookstore>
  <book id="bk101" category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30</price>
  </book>
  <book id="bk102" category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>35</price>
  </book>
</bookstore> 

Action Lines

Result

Example - Case 3: Using a data set

The following example repetitively retrieves the text from the price element based on the title variable defined within a data set.

As an example, the first iteration of the use data set loop issues an XPath query of //price[../title="Everyday Italian"]/text().

重要: 
To have TestArchitect parse a quotation mark, enter four consecutive quotation marks into the editor cell, that is, """".

<?xml version="1.0"?>
<bookstore>
  <book id="bk101" category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30</price>
  </book>
  <book id="bk102" category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>35</price>
  </book>
</bookstore>

Action Lines

Result

Example - Case 4: Passing an entire XML file’s content into the xml argument

The following example passes an entire well-formed XML string into the xml argument. Whitespace and line breaks between XML nodes within the document have been removed beforehand, as required.

Action Lines

Result

Example - Case 5: Using get text line to extract content

The following example extracts a single XML line, <title lang=“en”>Harry Potter</title>, from a variable holding multiple XML lines by using the get text line action.

<?xml version="1.0"?>
<bookstore>
  <book id="bk101" category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30</price>
  </book>
  <book id="bk102" category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>35</price>
  </book>
</bookstore> 

Action Lines

Result

Example - Case 6: Adding a single root element

The following example encloses the returned XML document in a single root element to ensure a well-formed XML document. The modified XML document is then used to calculate the sum of all price nodes.

<?xml version="1.0"?>
<bookstore>
  <book id="bk101" category="COOKING">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30</price>
  </book>
  <book id="bk102" category="CHILDREN">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>35</price>
  </book>
</bookstore> 

Test Lines

Result

Example - Case 7: Resolving the problem of namespaces

Let’s see an example of an XML file with a namespace:

<cr:cricketers xmlns:cr="http://www.example.com/">
   <cr:cricketer type="righty">
	<name>MS Dhoni</name>
	<role>Captain</role>
	<position>Wicket-Keeper</position>
   </cr:cricketer>
</cr:cricketers>

Use the local-name() function for your XPath, in order to retrieve the content of the <name> element of the cricketer node despite its enclosure in a namespace. For example, //*[local-name()=‘cricketer’]/name/text():

Test Lines

Result


Copyright © 2024 LogiGear Corporation. All rights reserved. LogiGearはLogiGear Corporationの登録商標であり、Action Based TestingおよびTestArchitectはLogiGear Corporationの商標です。ここに記載されているその他の商標は、各所有者の財産です。

LogiGear Corporation

1730 S. Amphlett Blvd. Suite 200, San Mateo, CA 94402

Tel: +1 (650) 572-1400