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

Breadcrumb

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

class CssSelectorConverter

CssSelectorConverter is the main entry point of the component and can convert CSS selectors to XPath expressions.

@author Christophe Coevoet <stof@notk.org>

Hierarchy

  • class \Symfony\Component\CssSelector\CssSelectorConverter

Expanded class hierarchy of CssSelectorConverter

2 files declare their use of CssSelectorConverter
Crawler.php in vendor/symfony/dom-crawler/Crawler.php
CssSelector.php in vendor/behat/mink/src/Selector/CssSelector.php

File

vendor/symfony/css-selector/CssSelectorConverter.php, line 27

Namespace

Symfony\Component\CssSelector
View source
class CssSelectorConverter {
    private Translator $translator;
    private array $cache;
    private static array $xmlCache = [];
    private static array $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.
     */
    public function toXPath(string $cssExpr, string $prefix = 'descendant-or-self::') : string {
        return $this->cache[$prefix][$cssExpr] ??= $this->translator
            ->cssToXPath($cssExpr, $prefix);
    }

}

Members

Title Sort descending Modifiers Object type Summary
CssSelectorConverter::$cache private property
CssSelectorConverter::$htmlCache private static property
CssSelectorConverter::$translator private property
CssSelectorConverter::$xmlCache private static property
CssSelectorConverter::toXPath public function Translates a CSS expression to its XPath equivalent.
CssSelectorConverter::__construct public function
RSS feed
Powered by Drupal