diff -r 000000000000 -r 7f95f8617b0b vendor/symfony/src/Symfony/Component/CssSelector/Node/HashNode.php --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vendor/symfony/src/Symfony/Component/CssSelector/Node/HashNode.php Sat Sep 24 15:40:41 2011 +0200 @@ -0,0 +1,59 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\CssSelector\Node; + +use Symfony\Component\CssSelector\XPathExpr; + +/** + * HashNode represents a "selector#id" node. + * + * This component is a port of the Python lxml library, + * which is copyright Infrae and distributed under the BSD license. + * + * @author Fabien Potencier + */ +class HashNode implements NodeInterface +{ + protected $selector; + protected $id; + + /** + * Constructor. + * + * @param NodeInterface $selector The NodeInterface object + * @param string $id The ID + */ + public function __construct($selector, $id) + { + $this->selector = $selector; + $this->id = $id; + } + + /** + * {@inheritDoc} + */ + public function __toString() + { + return sprintf('%s[%s#%s]', __CLASS__, $this->selector, $this->id); + } + + /** + * {@inheritDoc} + */ + public function toXpath() + { + $path = $this->selector->toXpath(); + $path->addCondition(sprintf('@id = %s', XPathExpr::xpathLiteral($this->id))); + + return $path; + } +}