Habari\HTMLSelector::toXPath PHP Method

toXPath() public method

Convert the CSS selector to an XPath selector
public toXPath ( ) : string
return string
    public function toXPath()
    {
        preg_match_all('/[:\\.\\w#]+|>|\\+|,/sim', $this->selector, $parts);
        $xpath = '';
        $rooting = '//';
        // This is XPath for "any descndant of"
        $stack = array();
        foreach ($parts[0] as $part) {
            switch ($part) {
                case '>':
                    // Direct descendant of
                    $rooting = '/';
                    break;
                case '+':
                    // Sibling of, not sure how to handle that yet
                    break;
                case ',':
                    // OR...
                    $stack[] = '|';
                    $rooting = '//';
                    break;
                default:
                    $xpath_part = $this->get_part_xpath($part, $stack);
                    $stack[] = $rooting;
                    $stack[] = $xpath_part;
                    $rooting = '//';
                    break;
            }
        }
        $xpath = implode('', $stack);
        return $xpath;
    }