Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x
  2. Manipulator.php

function Manipulator::prepend

Prepends the XPath prefix to the given XPath.

The returned XPath will match elements matching the XPath inside an element matching the prefix.

Parameters

string $xpath:

string $prefix:

Return value

string

File

vendor/behat/mink/src/Selector/Xpath/Manipulator.php, line 37

Class

Manipulator
XPath manipulation utility.

Namespace

Behat\Mink\Selector\Xpath

Code

public function prepend(string $xpath, string $prefix) {
    $expressions = array();
    // If the xpath prefix contains a union we need to wrap it in parentheses.
    if (preg_match(self::UNION_PATTERN, $prefix)) {
        $prefix = '(' . $prefix . ')';
    }
    // Split any unions into individual expressions.
    foreach ($this->splitUnionParts($xpath) as $expression) {
        $expression = trim($expression);
        $parenthesis = '';
        // If the union is inside some braces, we need to preserve the opening braces and apply
        // the prefix only inside it.
        if (preg_match('/^[\\(\\s*]+/', $expression, $matches)) {
            $parenthesis = $matches[0];
            $expression = substr($expression, strlen($parenthesis));
        }
        // add prefix before element selector
        if (0 === strpos($expression, '/')) {
            $expression = $prefix . $expression;
        }
        else {
            $expression = $prefix . '/' . $expression;
        }
        $expressions[] = $parenthesis . $expression;
    }
    return implode(' | ', $expressions);
}

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal