123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173 |
- --TEST--
- SimpleXML: XPath and attributes
- --EXTENSIONS--
- simplexml
- --FILE--
- <?php
- $xml =<<<EOF
- <?xml version='1.0'?>
- <root>
- <elem attr1='11' attr2='12' attr3='13'/>
- <elem attr1='21' attr2='22' attr3='23'/>
- <elem attr1='31' attr2='32' attr3='33'/>
- </root>
- EOF;
- $sxe = simplexml_load_string($xml);
- function test($xpath)
- {
- global $sxe;
- echo "===$xpath===\n";
- var_dump($sxe->xpath($xpath));
- }
- test('elem/@attr2');
- test('//@attr2');
- test('//@*');
- test('elem[2]/@attr2');
- ?>
- --EXPECTF--
- ===elem/@attr2===
- array(3) {
- [0]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "12"
- }
- }
- [1]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "22"
- }
- }
- [2]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "32"
- }
- }
- }
- ===//@attr2===
- array(3) {
- [0]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "12"
- }
- }
- [1]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "22"
- }
- }
- [2]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "32"
- }
- }
- }
- ===//@*===
- array(9) {
- [0]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr1"]=>
- string(2) "11"
- }
- }
- [1]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "12"
- }
- }
- [2]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr3"]=>
- string(2) "13"
- }
- }
- [3]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr1"]=>
- string(2) "21"
- }
- }
- [4]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "22"
- }
- }
- [5]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr3"]=>
- string(2) "23"
- }
- }
- [6]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr1"]=>
- string(2) "31"
- }
- }
- [7]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "32"
- }
- }
- [8]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr3"]=>
- string(2) "33"
- }
- }
- }
- ===elem[2]/@attr2===
- array(1) {
- [0]=>
- object(SimpleXMLElement)#%d (1) {
- ["@attributes"]=>
- array(1) {
- ["attr2"]=>
- string(2) "22"
- }
- }
- }
|