Overview
The wiki discusses upon the enhancement of xpath-capabilities for searching specific elements via CPS-core API and basically to:
- provide possibility to run xpath-searches over multiple anchors and dataspaces
- provide possibilites to search for specific ranges, operators <>, regex ...
which can be included in future releases.
Cps Xpath Possibilities
Jira : CPS-1131
1.Using >,< operators
Xpath >,< operaters | Select price nodes with price>800 /bookstore/book[@price>800] &limit=4 /bookstore/book[@price>800 and @price<1000]&limit=10 selects all the title nodes with a price higher than 800 /bookstore/book[@price>800]/title&limit=2 |
2.Using Contains function
Xpath contains function | 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: /bookstore/book/[contains(@language,'en')]XPath expression partial value ‘en’ is used in place English |
3.Using OR & AND functions
Xpath OR & AND functions |
/bookstore/book/[@title='The Golden compass' or @lang='english']
/bookstore/book/[@title='The Golden compass' and @lang='english']
/bookstore /book[@author contains("Philip Pullman") and @title = "The Golden compass "] /bookstore /book[@author contains("Iain M. Banks") and (@title contains("Far Horizons") or @title contains("Feersum Endjinn "))] |
4.Using starts-with/Ends-with function
Xpath starts-with function |
Code = “sid1” /bookstore/book[starts-with(@code,'sid')] Here, XPath finds those element whose ‘Code’ starting with ‘sid’. |
similarly,
Xpath Ends-with function |
Code = “1-sid” Code = “2-sid” Code = “3-sid” Code = “4-sid” Code = “5-sid”
/bookstore/book[ends-with(@code,'sid')] Here, XPath finds those element whose ‘Code’ ending with ‘sid’. |
5.Using Reqular Expression
Xpath Regular Expressions | Suppose ‘title’: ‘Feersum Endjinn’ /bookstore/book[@title = ^([a-zA-Z{10}\s])] Here, Xpath finds title attributes accordingly as given in expression |
Search along multiple anchors within a dataspace
Need to create new end point. For Example, http://localhost:8883/cps/api/v1/dataspaces/:dataspace-name/nodes?xpath=/bookstore/categories[@code='02'][@title='The Golden Compass'] |
Note: If search across all anchors takes much time then drop this plan