Esempio n. 1
0
 public function testToXpath()
 {
     // h1
     $element = new ElementNode('*', 'h1');
     $this->assertEquals('h1', (string) $element->toXpath(), '->toXpath() returns the xpath representation of the node');
     // foo|h1
     $element = new ElementNode('foo', 'h1');
     $this->assertEquals('foo:h1', (string) $element->toXpath(), '->toXpath() returns the xpath representation of the node');
 }
Esempio n. 2
0
 /**
  * @param Node\ElementNode $node
  *
  * @return XPathExpr
  */
 public function translateElement(Node\ElementNode $node)
 {
     $element = $node->getElement();
     if ($this->hasFlag(self::ELEMENT_NAME_IN_LOWER_CASE)) {
         $element = strtolower($element);
     }
     if ($element) {
         $safe = $this->isSafeName($element);
     } else {
         $element = '*';
         $safe = true;
     }
     if ($node->getNamespace()) {
         $element = sprintf('%s:%s', $node->getNamespace(), $element);
         $safe = $safe && $this->isSafeName($node->getNamespace());
     }
     $xpath = new XPathExpr('', $element);
     if (!$safe) {
         $xpath->addNameTest();
     }
     return $xpath;
 }