Package org.apache.jmeter.extractor

# Class XPathExtractor

java.lang.Object
org.apache.jmeter.testelement.AbstractTestElement
org.apache.jmeter.testelement.AbstractScopedTestElement
org.apache.jmeter.extractor.XPathExtractor

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `Searchable`, `PostProcessor`, `org.apache.jmeter.testelement.TestElement`

public class XPathExtractor extends AbstractScopedTestElement implements PostProcessor, Serializable
Extracts text from (X)HTML response using XPath query language Example XPath queries:

/html/head/title
  extracts Title from HTML response
//form[@name='countryForm']//select[@name='country']/option[text()='Czech Republic'])/@value
  extracts value attribute of option element that match text 'Czech Republic' inside of select element with name attribute 'country' inside of form with name attribute 'countryForm'
//head
  extracts the XML fragment for head node.
//head/text()
  extracts the text content for head node.

see org.apache.jmeter.extractor.TestXPathExtractor for unit tests

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface org.apache.jmeter.testelement.TestElement

  `org.apache.jmeter.testelement.TestElement.Companion`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `DEFAULT_VALUE_AS_STRING`

  ### Fields inherited from interface org.apache.jmeter.testelement.TestElement

  `COMMENTS, Companion, ENABLED, GUI_CLASS, NAME, TEST_CLASS`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `XPathExtractor()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getDefaultValue()`
  `boolean`
  `getFragment()`
  Should we return fragment as text, rather than text of fragment?
  `int`
  `getMatchNumber()`
  Return which Match to use.
  `String`
  `getMatchNumberAsString()`
  Return which Match to use.
  `String`
  `getRefName()`
  `String`
  `getXPathQuery()`
  `boolean`
  `isDownloadDTDs()`
  `boolean`
  `isQuiet()`
  `boolean`
  `isTolerant()`
  `boolean`
  `isValidating()`
  `boolean`
  `isWhitespace()`
  `void`
  `process()`
  Do the job - extract value from (X)HTML response using XPath Query.
  `boolean`
  `reportErrors()`
  `void`
  `setDefaultValue(String val)`
  `void`
  `setDownloadDTDs(boolean selected)`
  `void`
  `setFragment(boolean selected)`
  Should we return fragment as text, rather than text of fragment?
  `void`
  `setMatchNumber(int matchNumber)`
  Set which Match to use.
  `void`
  `setMatchNumber(String matchNumber)`
  Set which Match to use.
  `void`
  `setNameSpace(boolean val)`
  `void`
  `setQuiet(boolean val)`
  `void`
  `setRefName(String refName)`
  `void`
  `setReportErrors(boolean val)`
  `void`
  `setShowWarnings(boolean val)`
  `void`
  `setTolerant(boolean val)`
  `void`
  `setValidating(boolean selected)`
  `void`
  `setWhitespace(boolean selected)`
  `void`
  `setXPathQuery(String val)`
  `boolean`
  `showWarnings()`
  `boolean`
  `useNameSpace()`

  ### Methods inherited from class org.apache.jmeter.testelement.AbstractScopedTestElement

  `fetchScope, getProps, getSampleList, getSchema, getScopeName, getVariableName, isScopeAll, isScopeChildren, isScopeParent, isScopeVariable, isScopeVariable, setScopeAll, setScopeChildren, setScopeParent, setScopeVariable`

  ### Methods inherited from class org.apache.jmeter.testelement.AbstractTestElement

  `addPropertiesValues, addProperty, addProperty, addTestElement, canRemove, clear, clearTemporary, clearTestElementChildren, clone, emptyTemporary, equals, getComment, getName, getProperty, getPropertyAsBoolean, getPropertyAsBoolean, getPropertyAsDouble, getPropertyAsFloat, getPropertyAsInt, getPropertyAsInt, getPropertyAsLong, getPropertyAsLong, getPropertyAsString, getPropertyAsString, getPropertyOrNull, getSearchableTokens, getThreadContext, getThreadName, hashCode, isEnabled, isRunningVersion, isTemporary, logProperties, mergeIn, propertyIterator, recoverRunningVersion, removeProperty, setComment, setEnabled, setName, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setRunningVersion, setTemporary, setThreadContext, setThreadName, traverse, traverseCollection, traverseMap, traverseProperty`

  ### Methods inherited from class java.lang.Object

  `finalize, getClass, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.jmeter.testelement.TestElement

  `get, get, get, get, get, get, get, get, get, getOrCreate, getOrCreate, getOrNull, getOrNull, getOrNull, getPropertyOrNull, getString, removed, removeProperty, set, set, set, set, set, set, set, set, set`

- ## Field Details

  - ### DEFAULT_VALUE_AS_STRING

    public static final String DEFAULT_VALUE_AS_STRING

- ## Constructor Details

  - ### XPathExtractor

    public XPathExtractor()

- ## Method Details

  - ### process

    public void process()
    Do the job - extract value from (X)HTML response using XPath Query. Return value as variable defined by REFNAME. Returns DEFAULT value if not found.
    Specified by:
      `process` in interface `PostProcessor`

  - ### setXPathQuery

    public void setXPathQuery(String val)

  - ### getXPathQuery

    public String getXPathQuery()

  - ### setRefName

    public void setRefName(String refName)

  - ### getRefName

    public String getRefName()

  - ### setDefaultValue

    public void setDefaultValue(String val)

  - ### getDefaultValue

    public String getDefaultValue()

  - ### setTolerant

    public void setTolerant(boolean val)

  - ### isTolerant

    public boolean isTolerant()

  - ### setNameSpace

    public void setNameSpace(boolean val)

  - ### useNameSpace

    public boolean useNameSpace()

  - ### setReportErrors

    public void setReportErrors(boolean val)

  - ### reportErrors

    public boolean reportErrors()

  - ### setShowWarnings

    public void setShowWarnings(boolean val)

  - ### showWarnings

    public boolean showWarnings()

  - ### setQuiet

    public void setQuiet(boolean val)

  - ### isQuiet

    public boolean isQuiet()

  - ### getFragment

    public boolean getFragment()
    Should we return fragment as text, rather than text of fragment?
    Returns:
      true if we should return fragment rather than text

  - ### setFragment

    public void setFragment(boolean selected)
    Should we return fragment as text, rather than text of fragment?
    Parameters:
      `selected` - true to return fragment.

  - ### setWhitespace

    public void setWhitespace(boolean selected)

  - ### isWhitespace

    public boolean isWhitespace()

  - ### setValidating

    public void setValidating(boolean selected)

  - ### isValidating

    public boolean isValidating()

  - ### setDownloadDTDs

    public void setDownloadDTDs(boolean selected)

  - ### isDownloadDTDs

    public boolean isDownloadDTDs()

  - ### setMatchNumber

    public void setMatchNumber(int matchNumber)
    Set which Match to use. This can be any positive number, indicating the exact match to use, or `0`, which is interpreted as meaning random.
    Parameters:
      `matchNumber` - The number of the match to be used

  - ### setMatchNumber

    public void setMatchNumber(String matchNumber)
    Set which Match to use. This can be any positive number, indicating the exact match to use, or `0`, which is interpreted as meaning random.
    Parameters:
      `matchNumber` - The number of the match to be used

  - ### getMatchNumber

    public int getMatchNumber()
    Return which Match to use. This can be any positive number, indicating the exact match to use, or `0`, which is interpreted as meaning random.
    Returns:
      matchNumber The number of the match to be used

  - ### getMatchNumberAsString

    public String getMatchNumberAsString()
    Return which Match to use. This can be any positive number, indicating the exact match to use, or `0`, which is interpreted as meaning random.
    Returns:
      matchNumber The number of the match to be used