Automattic\WooCommerce\Vendor\Symfony\Component\CssSelector
CssSelectorConverter{}
CssSelectorConverter is the main entry point of the component and can convert CSS selectors to XPath expressions.
No Hooks.
Usage
$CssSelectorConverter = new CssSelectorConverter(); // use class methods
Methods
- public __construct(bool $html = true)
- public toXPath(string $cssExpr, string $prefix = 'descendant-or-self::')
- ERROR: no method name found on line `} else {`
- ERROR: no method name found on line ``
CssSelectorConverter{} CssSelectorConverter{} code WC 10.7.0
class CssSelectorConverter
{
private $translator;
private $cache;
private static $xmlCache = [];
private static $htmlCache = [];
/**
* @param bool $html Whether HTML support should be enabled. Disable it for XML documents
*/
public function __construct(bool $html = true)
{
$this->translator = new Translator();
if ($html) {
$this->translator->registerExtension(new HtmlExtension($this->translator));
$this->cache = &self::$htmlCache;
} else {
$this->cache = &self::$xmlCache;
}
$this->translator
->registerParserShortcut(new EmptyStringParser())
->registerParserShortcut(new ElementParser())
->registerParserShortcut(new ClassParser())
->registerParserShortcut(new HashParser())
;
}
/**
* Translates a CSS expression to its XPath equivalent.
*
* Optionally, a prefix can be added to the resulting XPath
* expression with the $prefix parameter.
*
* @return string
*/
public function toXPath(string $cssExpr, string $prefix = 'descendant-or-self::')
{
return $this->cache[$prefix][$cssExpr] ?? $this->cache[$prefix][$cssExpr] = $this->translator->cssToXPath($cssExpr, $prefix);
}
}