Class 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 Detail

      • 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 Detail

      • 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