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(): Case04
3
--SKIPIF--
4
<?php require_once dirname(dirname(__FILE__)) . '/skipif.php'; ?>
5
--FILE--
6
<?php
7
require_once 'XML/Query2XML.php';
8
require_once dirname(dirname(__FILE__)) . '/db_init.php';
9
$query2xml = XML_Query2XML::factory($db);
10
$dom = $query2xml->getXML(
11
    "SELECT
12
        *
13
     FROM
14
        artist
15
     ORDER BY
16
        artistid",
17
    array(
18
        'rootTag' => 'MUSIC_LIBRARY',
19
        'rowTag' => 'ARTIST',
20
        'idColumn' => 'artistid',
21
        'elements' => array(
22
            'NAME' => 'name',
23
            'BIRTH_YEAR' => 'birth_year',
24
            'BIRTH_YEAR_TWO_DIGIT' => "#firstTwoChars()",
25
            'BIRTH_PLACE' => 'birth_place',
26
            'GENRE' => 'genre',
27
            'albums' => array(
28
                'sql' => array(
29
                    'data' => array(
30
                        'artistid'
31
                    ),
32
                    'query' => 'SELECT * FROM album WHERE artist_id = ?'
33
                ),
34
                'sql_options' => array(
35
                    'merge_selective' => array('genre')
36
                ),
37
                'rootTag' => '',
38
                'rowTag' => 'ALBUM',
39
                'idColumn' => 'albumid',
40
                'elements' => array(
41
                    'TITLE' => 'title',
42
                    'PUBLISHED_YEAR' => 'published_year',
43
                    'COMMENT' => 'comment',
44
                    'GENRE' => 'genre'
45
                ),
46
                'attributes' => array(
47
                    'ALBUMID' => 'albumid'
48
                )
49
            )
50
        ),
51
        'attributes' => array(
52
            'ARTISTID' => 'artistid',
53
            'MAINTAINER' => ':Lukas Feiler'
54
        )
55
    )
56
);
57
 
58
header('Content-Type: application/xml');
59
 
60
$dom->formatOutput = true;
61
print $dom->saveXML();
62
 
63
function firstTwoChars($record)
64
{
65
    return substr($record['birth_year'], 2);
66
}
67
?>
68
--EXPECT--
69
<?xml version="1.0" encoding="UTF-8"?>
70
<MUSIC_LIBRARY>
71
  <ARTIST ARTISTID="1" MAINTAINER="Lukas Feiler">
72
    <NAME>Curtis Mayfield</NAME>
73
    <BIRTH_YEAR>1920</BIRTH_YEAR>
74
    <BIRTH_YEAR_TWO_DIGIT>20</BIRTH_YEAR_TWO_DIGIT>
75
    <BIRTH_PLACE>Chicago</BIRTH_PLACE>
76
    <GENRE>Soul</GENRE>
77
    <ALBUM ALBUMID="1">
78
      <TITLE>New World Order</TITLE>
79
      <PUBLISHED_YEAR>1990</PUBLISHED_YEAR>
80
      <COMMENT>the best ever!</COMMENT>
81
      <GENRE>Soul</GENRE>
82
    </ALBUM>
83
    <ALBUM ALBUMID="2">
84
      <TITLE>Curtis</TITLE>
85
      <PUBLISHED_YEAR>1970</PUBLISHED_YEAR>
86
      <COMMENT>that man's got somthin' to say</COMMENT>
87
      <GENRE>Soul</GENRE>
88
    </ALBUM>
89
  </ARTIST>
90
  <ARTIST ARTISTID="2" MAINTAINER="Lukas Feiler">
91
    <NAME>Isaac Hayes</NAME>
92
    <BIRTH_YEAR>1942</BIRTH_YEAR>
93
    <BIRTH_YEAR_TWO_DIGIT>42</BIRTH_YEAR_TWO_DIGIT>
94
    <BIRTH_PLACE>Tennessee</BIRTH_PLACE>
95
    <GENRE>Soul</GENRE>
96
    <ALBUM ALBUMID="3">
97
      <TITLE>Shaft</TITLE>
98
      <PUBLISHED_YEAR>1972</PUBLISHED_YEAR>
99
      <COMMENT>he's the man</COMMENT>
100
      <GENRE>Soul</GENRE>
101
    </ALBUM>
102
  </ARTIST>
103
  <ARTIST ARTISTID="3" MAINTAINER="Lukas Feiler">
104
    <NAME>Ray Charles</NAME>
105
    <BIRTH_YEAR>1930</BIRTH_YEAR>
106
    <BIRTH_YEAR_TWO_DIGIT>30</BIRTH_YEAR_TWO_DIGIT>
107
    <BIRTH_PLACE>Mississippi</BIRTH_PLACE>
108
    <GENRE>Country and Soul</GENRE>
109
  </ARTIST>
110
</MUSIC_LIBRARY>