PhpCss\Ast\Visitor\Xpath::visitSelectorSimpleAttribute PHP Метод

visitSelectorSimpleAttribute() публичный Метод

public visitSelectorSimpleAttribute ( PhpCss\Ast\Selector\Simple\Attribute $attribute )
$attribute PhpCss\Ast\Selector\Simple\Attribute
    public function visitSelectorSimpleAttribute(Ast\Selector\Simple\Attribute $attribute)
    {
        switch ($attribute->match) {
            case Ast\Selector\Simple\Attribute::MATCH_PREFIX:
                $condition = sprintf('starts-with(@%s, %s)', $attribute->name, $this->quoteLiteral($attribute->literal));
                break;
            case Ast\Selector\Simple\Attribute::MATCH_SUFFIX:
                $condition = sprintf('substring(@%1$s, string-length(@%1$s) - %2$s) = %3$s', $attribute->name, strlen($attribute->literal), $this->quoteLiteral($attribute->literal));
                break;
            case Ast\Selector\Simple\Attribute::MATCH_SUBSTRING:
                $condition = sprintf('contains(@%s, %s)', $attribute->name, $this->quoteLiteral($attribute->literal));
                break;
            case Ast\Selector\Simple\Attribute::MATCH_EQUALS:
                $condition = '@' . $attribute->name . ' = ' . $this->quoteLiteral($attribute->literal);
                break;
            case Ast\Selector\Simple\Attribute::MATCH_INCLUDES:
                $condition = sprintf('contains(concat(" ", normalize-space(@%s), " "), %s)', $attribute->name, $this->quoteLiteral(' ' . trim($attribute->literal) . ' '));
                break;
            case Ast\Selector\Simple\Attribute::MATCH_DASHMATCH:
                $condition = sprintf('(@%1$s = %2$s or substring-before(@%1$s, "-") = %2$s)', $attribute->name, $this->quoteLiteral($attribute->literal));
                break;
            case Ast\Selector\Simple\Attribute::MATCH_EXISTS:
            default:
                $condition = '@' . $attribute->name;
                break;
        }
        if (!empty($condition)) {
            $this->addCondition($condition);
        }
        return TRUE;
    }