Annotation of embedaddon/php/ext/dom/tests/domxpath.phpt, revision 1.1.1.1

1.1       misho       1: --TEST--
                      2: DOMXPath Tests
                      3: --SKIPIF--
                      4: <?php require_once('skipif.inc'); ?>
                      5: --FILE--
                      6: <?php
                      7: require_once("dom_test.inc");
                      8: 
                      9: function MyAverage($nodelist) {
                     10:        $count = 0;
                     11:        $val = 0;
                     12:        foreach ($nodelist AS $node) {
                     13:                $count++;
                     14:                $val += $node->textContent;
                     15:        }
                     16:        if ($val > 0) {
                     17:                return $val/$count;
                     18:        } else {
                     19:                return 0;
                     20:        }
                     21: }
                     22: 
                     23: $dom = new DOMDocument;
                     24: $dom->loadXML(b'<root xmlns="urn::default"><child>myval</child></root>');
                     25: 
                     26: $xpath = new DOMXPath($dom);
                     27: 
                     28: $xpath->registerPHPFunctions('MyAverage');
                     29: $xpath->registerNamespace("php", "http://php.net/xpath");
                     30: 
                     31: $xpath->registerNamespace("def", "urn::default");
                     32: $nodelist = $xpath->query("//def:child");
                     33: if ($node = $nodelist->item(0)) {
                     34:        print $node->textContent."\n";
                     35: }
                     36: 
                     37: $count = $xpath->evaluate("count(//def:child)");
                     38: 
                     39: var_dump($count);
                     40: 
                     41: $xpathdoc = $xpath->document;
                     42: 
                     43: var_dump($xpathdoc instanceof DOMDocument);
                     44: 
                     45: $root = $dom->documentElement;
                     46: $root->appendChild($dom->createElementNS("urn::default", "testnode", 3));
                     47: $root->appendChild($dom->createElementNS("urn::default", "testnode", 4));
                     48: $root->appendChild($dom->createElementNS("urn::default", "testnode", 4));
                     49: $root->appendChild($dom->createElementNS("urn::default", "testnode", 5));
                     50: 
                     51: $avg = $xpath->evaluate('number(php:function("MyAverage", //def:testnode))');
                     52: var_dump($avg);
                     53: ?>
                     54: --EXPECT--
                     55: myval
                     56: float(1)
                     57: bool(true)
                     58: float(4)

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>