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>