public function NodeExtension::translateAttribute in Zircon Profile 8.0
Same name and namespace in other branches
- 8 vendor/symfony/css-selector/XPath/Extension/NodeExtension.php \Symfony\Component\CssSelector\XPath\Extension\NodeExtension::translateAttribute()
Parameters
Node\AttributeNode $node:
Translator $translator:
Return value
File
- vendor/
symfony/ css-selector/ XPath/ Extension/ NodeExtension.php, line 167
Class
- NodeExtension
- XPath expression translator node extension.
Namespace
Symfony\Component\CssSelector\XPath\ExtensionCode
public function translateAttribute(Node\AttributeNode $node, Translator $translator) {
$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);
}