else { $parts[] = "'
$string'";
break;
} } return sprintf('concat(%s)',
implode(', ',
$parts));
} public function cssToXPath(string
$cssExpr, string
$prefix = 'descendant-or-self::'
): string
{ $selectors =
$this->
parseSelectors($cssExpr);
/** @var SelectorNode $selector */
foreach ($selectors as $index =>
$selector) { if (null !==
$selector->
getPseudoElement()) { throw new ExpressionErrorException('Pseudo-elements are not supported.'
);
} $selectors[$index] =
$this->
selectorToXPath($selector,
$prefix);
} return implode(' | ',
$selectors);
}