Class MultiLevelByNameAndTextSelector

java.lang.Object
org.xmlunit.diff.MultiLevelByNameAndTextSelector
All Implemented Interfaces:
ElementSelector

public class MultiLevelByNameAndTextSelector extends Object implements ElementSelector
ElementSelector that allows two elements to be compared if their name (including namespace URI, if any) and textual content is the same at a certain level of nesting.

This means ElementSelectors.byNameAndText and MultiLevelByNameAndTextSelector(1) should lead to the same results.

Any attribute values are completely ignored. Only works on elements with exactly one child element at each level.

This class mostly exists as an example for custom ElementSelectors and may need to be combined inside a conditionalSelector in order to be useful for the document as a whole.

  • Constructor Details

    • MultiLevelByNameAndTextSelector

      public MultiLevelByNameAndTextSelector(int levels)
      Uses element names and the text nested levels child elements deeper into the element to compare elements.

      Does not ignore empty text nodes.

      Parameters:
      levels - level of nesting to use when looking up the text
    • MultiLevelByNameAndTextSelector

      public MultiLevelByNameAndTextSelector(int levels, boolean ignoreEmptyTexts)
      Uses element names and the text nested levels child elements deeper into the element to compare elements.
      Parameters:
      levels - level of nesting to use when looking up the text
      ignoreEmptyTexts - whether whitespace-only textnodes should be ignored.
  • Method Details

    • canBeCompared

      public boolean canBeCompared(Element controlElement, Element testElement)
      Description copied from interface: ElementSelector
      Determine whether the two elements from the control and test XML can be compared.
      Specified by:
      canBeCompared in interface ElementSelector
      Parameters:
      controlElement - element of the control XML
      testElement - element of the test XML
      Returns:
      true if the two elements can be compared