xref: /PHP-8.4/ext/xmlreader/tests/003-mb.phpt (revision 74859783)
1--TEST--
2XMLReader: libxml2 XML Reader, attributes test
3--EXTENSIONS--
4xmlreader
5--FILE--
6<?php
7$filename = __DIR__ . '/私はガラスを食べられます_003.xml';
8
9$xmlstring = '<?xml version="1.0" encoding="UTF-8"?>
10<books><book num="1" idx="2">book1</book></books>';
11file_put_contents($filename, $xmlstring);
12
13$reader = new XMLReader();
14if (!$reader->open($filename)) {
15    exit();
16}
17
18// Only go through
19while ($reader->read()) {
20    if ($reader->nodeType != XMLREADER::END_ELEMENT) {
21        if ($reader->nodeType == XMLREADER::ELEMENT && $reader->hasAttributes) {
22            $attr = $reader->moveToFirstAttribute();
23            echo $reader->name . ": ";
24            echo $reader->value . "\n";
25
26            if ($reader->getAttribute($reader->name) == $reader->value) {
27                echo "1st attr (num) failed\n";
28            }
29
30
31            $attr = $reader->moveToNextAttribute();
32            echo $reader->name . ": ";
33            echo $reader->value . "\n";
34
35            if ($reader->getAttribute($reader->name) == $reader->value) {
36                echo "2nd attr (idx) failed\n";
37            }
38
39            // Named attribute
40            $attr = $reader->moveToAttribute('num');
41            echo $reader->name . ": ";
42            echo $reader->value . "\n";
43
44            if ($reader->getAttribute('num') == $reader->value) {
45                echo "attr num failed\n";
46            }
47
48            $attr = $reader->moveToAttribute('idx');
49            echo $reader->name . ": ";
50            echo $reader->value . "\n";
51
52            if ($reader->getAttribute('idx') == $reader->value) {
53                echo "attr idx failed\n";
54            }
55
56            // Numeric positions of attributes
57            $attr = $reader->moveToAttributeNo(0);
58            echo $reader->name . ": ";
59            echo $reader->value . "\n";
60
61            if ($reader->getAttributeNo(0) == $reader->value) {
62                echo "attr 0 failed\n";
63            }
64
65            $attr = $reader->moveToAttributeNo(1);
66            echo $reader->name . ": ";
67            echo $reader->value . "\n";
68
69        }
70    }
71}
72$reader->close();
73unlink($filename);
74?>
75--EXPECT--
76num: 1
77idx: 2
78num: 1
79idx: 2
80num: 1
81idx: 2
82