Ejemplo n.º 1
0
 /**
  * @param XPathExpr $xpath
  *
  * @return XPathExpr
  */
 public function translateVisited(XPathExpr $xpath)
 {
     return $xpath->addCondition('0');
 }
Ejemplo n.º 2
0
 /**
  * @param XPathExpr    $xpath
  * @param FunctionNode $function
  *
  * @return XPathExpr
  *
  * @throws ExpressionErrorException
  */
 public function translateLang(XPathExpr $xpath, FunctionNode $function)
 {
     $arguments = $function->getArguments();
     foreach ($arguments as $token) {
         if (!($token->isString() || $token->isIdentifier())) {
             throw new ExpressionErrorException('Expected a single string or identifier for :lang(), got ' . implode(', ', $arguments));
         }
     }
     return $xpath->addCondition(sprintf('lang(%s)', Translator::getXpathLiteral($arguments[0]->getValue())));
 }
 /**
  *
  * @param XPathExpr $xpath        	
  *
  * @return XPathExpr
  */
 public function translateEmpty(XPathExpr $xpath)
 {
     return $xpath->addCondition('not(*) and not(string-length())');
 }
 /**
  * @param XPathExpr $xpath
  * @param string    $attribute
  * @param string    $value
  *
  * @return XPathExpr
  */
 public function translateDifferent(XPathExpr $xpath, $attribute, $value)
 {
     return $xpath->addCondition(sprintf($value ? 'not(%1$s) or %1$s != %2$s' : '%s != %s', $attribute, Translator::getXpathLiteral($value)));
 }