CPS-1221 CPS Xpath search capability Enhancements

Overview

The wiki discusses upon the enhancement of xpath-capabilities for searching specific elements via CPS-core API and basically to:

  • provide possibilites to search for specific ranges, operators <>, regex ...

which can be included in future releases.

Cps Xpath Possibilities

Jira : CPS-1221

 1.Using >,< operators

Example

Description

/bookstore/book[@price>800]

Select price nodes with price>800

/bookstore/book[@price<1000]

Select price nodes with price<1000

NOTE: We can add limit to above examples as a query parameter

 2.Using Contains function

           

Example 

Description

//books[contains(@language,'En')] 

It is used when the value of any attribute changes dynamically, The contain feature has an ability to find the element with partial text as shown in below XPath example:



XPath expression partial value ‘En’ is used in place English







3.Using OR & AND functions

Example

Description

//books[@title='The Golden compass' or @lang='english']

  • In OR expression, two conditions are used, whether 1st condition OR 2nd condition should be true. It is also applicable if any one condition is true or maybe both. Means any one condition should be true to find the element.

  • In this XPath expression, it identifies the elements whose single or both conditions are true.

 //books[@title='The Golden compass' and @lang='english']

  • In AND expression, two conditions are used, both conditions should be true to find the element. It fails to find element if any one condition is false.

 4.Using starts-with/Ends-with function

Example

Description



/bookstore/book[starts-with(@code,'sid')]



  • For example -: Suppose the ID of particular element changes dynamically like:

Code = “sid1”
Code = “sid2”
Code = “sid3”
Code = “sid4”
Code = “sid5”

Here, XPath finds those element whose ‘Code’ starting with ‘sid’.

similarly,

Example

Description

/bookstore/book[ends-with(@code,'sid')]

  • For example -: Suppose the ID of particular element changes dynamically like:

 Code = “1-sid”
 Code = “2-sid”
 Code = “3-sid”
 Code = “4-sid”
 Code = “5-sid”

 Here, XPath finds those element whose ‘Code’ ending with ‘sid’.

 5.Using Reqular Expression

Example

Description

 /bookstore/book[@title = ^([a-zA-Z{10}\s])]

Suppose    ‘title’: ‘Feersum Endjinn’

Here, Xpath finds title attributes accordingly as given in expression