Commit 692bb940 authored by Jakub Zalas's avatar Jakub Zalas
Browse files

[CssSelector] Support *:only-of-type pseudo class selector

Showing with 7 additions and 7 deletions
+7 -7
CHANGELOG
=========
4.4.0
-----
* Added support for `*:only-of-type`
2.8.0
-----
......
......@@ -308,6 +308,8 @@ HTML
['li div:only-child', ['li-div']],
['div *:only-child', ['li-div', 'foobar-span']],
['p:only-of-type', ['paragraph']],
[':only-of-type', ['html', 'li-div', 'foobar-span', 'paragraph']],
['div#foobar-div :only-of-type', ['foobar-span']],
['a:empty', ['name-anchor']],
['a:EMpty', ['name-anchor']],
['li:empty', ['third-li', 'fourth-li', 'fifth-li', 'sixth-li']],
......
......@@ -100,17 +100,10 @@ class PseudoClassExtension extends AbstractExtension
->addCondition('last() = 1');
}
/**
* @throws ExpressionErrorException
*/
public function translateOnlyOfType(XPathExpr $xpath): XPathExpr
{
$element = $xpath->getElement();
if ('*' === $element) {
throw new ExpressionErrorException('"*:only-of-type" is not implemented.');
}
return $xpath->addCondition(sprintf('count(preceding-sibling::%s)=0 and count(following-sibling::%s)=0', $element, $element));
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment