| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | <?php/* * This file is part of the Symfony package. * * (c) Fabien Potencier <fabien@symfony.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */namespace Symfony\Component\CssSelector;use Symfony\Component\CssSelector\Parser\Shortcut\ClassParser;use Symfony\Component\CssSelector\Parser\Shortcut\ElementParser;use Symfony\Component\CssSelector\Parser\Shortcut\EmptyStringParser;use Symfony\Component\CssSelector\Parser\Shortcut\HashParser;use Symfony\Component\CssSelector\XPath\Extension\HtmlExtension;use Symfony\Component\CssSelector\XPath\Translator;/** * CssSelectorConverter is the main entry point of the component and can convert CSS * selectors to XPath expressions. * * @author Christophe Coevoet <stof@notk.org> */class CssSelectorConverter{    private $translator;    /**     * @param bool $html Whether HTML support should be enabled. Disable it for XML documents     */    public function __construct($html = true)    {        $this->translator = new Translator();        if ($html) {            $this->translator->registerExtension(new HtmlExtension($this->translator));        }        $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.     *     * @param string $cssExpr The CSS expression     * @param string $prefix  An optional prefix for the XPath expression     *     * @return string     */    public function toXPath($cssExpr, $prefix = 'descendant-or-self::')    {        return $this->translator->cssToXPath($cssExpr, $prefix);    }}
 |