Automattic\WooCommerce\Vendor\Symfony\Component\CssSelector\XPath\Extension

NodeExtension::translateAttributepublicWC 1.0

Method of the class: NodeExtension{}

No Hooks.

Returns

null. Nothing (null).

Usage

$NodeExtension = new NodeExtension();
$NodeExtension->translateAttribute( $node, $translator ): XPathExpr;
$node([Node\AttributeNode]()) (required)
.
$translator(Translator) (required)
.

NodeExtension::translateAttribute() code WC 10.4.3

public function translateAttribute(Node\AttributeNode $node, Translator $translator): XPathExpr
{
    $name = $node->getAttribute();
    $safe = $this->isSafeName($name);

    if ($this->hasFlag(self::ATTRIBUTE_NAME_IN_LOWER_CASE)) {
        $name = strtolower($name);
    }

    if ($node->getNamespace()) {
        $name = sprintf('%s:%s', $node->getNamespace(), $name);
        $safe = $safe && $this->isSafeName($node->getNamespace());
    }

    $attribute = $safe ? '@'.$name : sprintf('attribute::*[name() = %s]', Translator::getXpathLiteral($name));
    $value = $node->getValue();
    $xpath = $translator->nodeToXPath($node->getSelector());

    if ($this->hasFlag(self::ATTRIBUTE_VALUE_IN_LOWER_CASE)) {
        $value = strtolower($value);
    }

    return $translator->addAttributeMatching($xpath, $node->getOperator(), $attribute, $value);
}