Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
--TEST--
2
XML_Query2XML::getXML(): using the callback interface for an idColumn specification
3
--SKIPIF--
4
<?php require_once dirname(dirname(__FILE__)) . '/skipif.php'; ?>
5
--FILE--
6
<?php
7
    require_once 'XML/Query2XML.php';
8
    require_once 'XML/Query2XML/Callback.php';
9
    require_once dirname(dirname(__FILE__)) . '/db_init.php';
10
    class MyCallback implements XML_Query2XML_Callback
11
    {
12
        private $_columnName = '';
13
 
14
        public function __construct($columnName)
15
        {
16
            $this->_columnName = $columnName;
17
        }
18
 
19
        public function execute(array $record)
20
        {
21
            return $record[$this->_columnName];
22
        }
23
    }
24
 
25
    $query2xml = XML_Query2XML::factory($db);
26
    $dom =& $query2xml->getXML(
27
        "SELECT
28
            *
29
         FROM
30
            album",
31
        array(
32
            'rootTag' => 'music_store',
33
            'rowTag' => 'album',
34
            'idColumn' => new MyCallback('albumid'),
35
            'elements' => array(
36
                'albumid',
37
                'title'
38
            )
39
        )
40
    );
41
    $dom->formatOutput = true;
42
    print $dom->saveXML();
43
?>
44
--EXPECT--
45
<?xml version="1.0" encoding="UTF-8"?>
46
<music_store>
47
  <album>
48
    <albumid>1</albumid>
49
    <title>New World Order</title>
50
  </album>
51
  <album>
52
    <albumid>2</albumid>
53
    <title>Curtis</title>
54
  </album>
55
  <album>
56
    <albumid>3</albumid>
57
    <title>Shaft</title>
58
  </album>
59
</music_store>