XPath Tester - Evaluator

Allows you to test your XPath expressions/queries against a XML file. This tool runs better than other existing XPath online tools as it supports most of the XPath functions (string(), number(), name(), string-length() etc.) and does not limit you to working against nodes. It fully supports XPath 2.0 / 3.0 specification. See the XPath Examples section for details.

The XPath tester fully supports XML namespaces. See the XPath Examples section for details. The namespace prefix "fn" and "math" are reserved to XPath functions.

XPath Examples


All of the following examples use this sample XML code. You can find more documentation on XPath expressions at W3Schools.com

<root xmlns:foo="http://www.foo.org/" xmlns:bar="http://www.bar.org">
	<actors>
		<actor id="1">Christian Bale</actor>
		<actor id="2">Liam Neeson</actor>
		<actor id="3">Michael Caine</actor>
	</actors>
	<foo:singers>
		<foo:singer id="4">Tom Waits</foo:singer>
		<foo:singer id="5">B.B. King</foo:singer>
		<foo:singer id="6">Ray Charles</foo:singer>
	</foo:singers>
</root>
1. Select the document node

/

2. Select the 'root' element

/root

3. Select all 'actor' elements that are direct children of the 'actors' element

/root/actors/actor

4. Select all 'singer' elements regardless of their positions in the document

//foo:singer

5. Select the 'id' attributes of the 'singer' elements regardless of their positions in the document

//foo:singer/@id

6. Select the textual value of first 'actor' element

//actor[1]/text()

7. Select the last 'actor' element

//actor[last()]

8. Select the first and second 'actor' elements using their position

//actor[position() < 3]

9. Select all 'actor' elements that have an 'id' attribute

//actor[@id]]

10. Select the 'actor' element with the 'id' attribute value of '3'

//actor[@id='3']

11. Select all 'actor' nodes with the 'id' attribute value lower or equal to '3'

//actor[@id<=3]

12. Select all the children of the 'singers' node

/root/foo:singers/*

13. Select all the elements in the document

//*

14. Select all the 'actor' elements AND the 'singer' elements

//actor|//foo:singer

15. Select the name of the first element in the document

name(//*[1])

16. Select the numeric value of the 'id' attribute of the first 'actor' element

number(//actor[1]/@id)

17. Select the string representation value of the 'id' attribute of the first 'actor' element

string(//actor[1]/@id)

18. Select the length of the first 'actor' element's textual value

string-length(//actor[1]/text())

19. Select the local name of the first 'singer' element, i.e. without the namespace

local-name(//foo:singer[1])

20. Select the number of 'singer' elements

count(//foo:singer)

21. Select the sum of the 'id' attributes of the 'singer' elements

sum(//foo:singer/@id)