public class HasXPathMatcher extends org.hamcrest.BaseMatcher<Object>
Matcher
verifies whether the provided XPath expression corresponds to at least
one element in the provided object.
All types which are supported by Input.from(Object)
can be used as input for the object
against the matcher is evaluated.
Simple Example
final String xml = "<a><b attr=\"abc\"></b></a>"; assertThat(xml, hasXPath("//a/b/@attr")); assertThat(xml, not(hasXPath("//a/b/c")));
Example with namespace mapping
String xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<feed xmlns=\"http://www.w3.org/2005/Atom\">" + " <title>title</title>" + " <entry>" + " <title>title1</title>" + " <id>id1</id>" + " </entry>" + "</feed>"; HashMap<String, String> prefix2Uri = new HashMap<String, String>(); prefix2Uri.put("atom", "http://www.w3.org/2005/Atom"); assertThat(xmlRootElement, hasXPath("//atom:feed/atom:entry/atom:id").withNamespaceContext(prefix2Uri));
Constructor and Description |
---|
HasXPathMatcher(String xPath)
Creates a
HasXPathMatcher instance with the associated XPath expression. |
Modifier and Type | Method and Description |
---|---|
void |
describeMismatch(Object item,
org.hamcrest.Description mismatchDescription) |
void |
describeTo(org.hamcrest.Description description) |
static HasXPathMatcher |
hasXPath(String xPath)
Creates a matcher that matches when the examined XML input has at least one node
corresponding to the specified
xPath . |
boolean |
matches(Object object) |
HasXPathMatcher |
withNamespaceContext(Map<String,String> prefix2Uri)
Utility method used for creating a namespace context mapping to be used in XPath matching.
|
public HasXPathMatcher(String xPath)
HasXPathMatcher
instance with the associated XPath expression.xPath
- xPath expressionpublic boolean matches(Object object)
public void describeTo(org.hamcrest.Description description)
public void describeMismatch(Object item, org.hamcrest.Description mismatchDescription)
public static HasXPathMatcher hasXPath(String xPath)
xPath
.
For example:
assertThat(xml, hasXPath("/root/cars[0]/audi"))
xPath
- the target xpathpublic HasXPathMatcher withNamespaceContext(Map<String,String> prefix2Uri)
prefix2Uri
- prefix2Uri maps from prefix to namespace URI. It is used to resolve
XML namespace prefixes in the XPath expressionCopyright © 2001–2017 XMLUnit. All rights reserved.