Current File : //opt/RZphp74/includes/test/XML_Query2XML/tests/XML_Query2XML/AllDBLayers/getXML/case04.phpt
--TEST--
XML_Query2XML::getXML(): Case04
--SKIPIF--
<?php require_once dirname(dirname(__FILE__)) . '/skipif.php'; ?>
--FILE--
<?php
require_once 'XML/Query2XML.php';
require_once dirname(dirname(__FILE__)) . '/db_init.php';
$query2xml = XML_Query2XML::factory($db);
$dom = $query2xml->getXML(
    "SELECT
        *
     FROM
        artist
     ORDER BY
        artistid",
    array(
        'rootTag' => 'MUSIC_LIBRARY',
        'rowTag' => 'ARTIST',
        'idColumn' => 'artistid',
        'elements' => array(
            'NAME' => 'name',
            'BIRTH_YEAR' => 'birth_year',
            'BIRTH_YEAR_TWO_DIGIT' => "#firstTwoChars()",
            'BIRTH_PLACE' => 'birth_place',
            'GENRE' => 'genre',
            'albums' => array(
                'sql' => array(
                    'data' => array(
                        'artistid'
                    ),
                    'query' => 'SELECT * FROM album WHERE artist_id = ?'
                ),
                'sql_options' => array(
                    'merge_selective' => array('genre')
                ),
                'rootTag' => '',
                'rowTag' => 'ALBUM',
                'idColumn' => 'albumid',
                'elements' => array(
                    'TITLE' => 'title',
                    'PUBLISHED_YEAR' => 'published_year',
                    'COMMENT' => 'comment',
                    'GENRE' => 'genre'
                ),
                'attributes' => array(
                    'ALBUMID' => 'albumid'
                )
            )
        ),
        'attributes' => array(
            'ARTISTID' => 'artistid',
            'MAINTAINER' => ':Lukas Feiler'
        )
    )
);

header('Content-Type: application/xml');

$dom->formatOutput = true;
print $dom->saveXML();

function firstTwoChars($record)
{
    return substr($record['birth_year'], 2);
}
?>
--EXPECT--
<?xml version="1.0" encoding="UTF-8"?>
<MUSIC_LIBRARY>
  <ARTIST ARTISTID="1" MAINTAINER="Lukas Feiler">
    <NAME>Curtis Mayfield</NAME>
    <BIRTH_YEAR>1920</BIRTH_YEAR>
    <BIRTH_YEAR_TWO_DIGIT>20</BIRTH_YEAR_TWO_DIGIT>
    <BIRTH_PLACE>Chicago</BIRTH_PLACE>
    <GENRE>Soul</GENRE>
    <ALBUM ALBUMID="1">
      <TITLE>New World Order</TITLE>
      <PUBLISHED_YEAR>1990</PUBLISHED_YEAR>
      <COMMENT>the best ever!</COMMENT>
      <GENRE>Soul</GENRE>
    </ALBUM>
    <ALBUM ALBUMID="2">
      <TITLE>Curtis</TITLE>
      <PUBLISHED_YEAR>1970</PUBLISHED_YEAR>
      <COMMENT>that man's got somthin' to say</COMMENT>
      <GENRE>Soul</GENRE>
    </ALBUM>
  </ARTIST>
  <ARTIST ARTISTID="2" MAINTAINER="Lukas Feiler">
    <NAME>Isaac Hayes</NAME>
    <BIRTH_YEAR>1942</BIRTH_YEAR>
    <BIRTH_YEAR_TWO_DIGIT>42</BIRTH_YEAR_TWO_DIGIT>
    <BIRTH_PLACE>Tennessee</BIRTH_PLACE>
    <GENRE>Soul</GENRE>
    <ALBUM ALBUMID="3">
      <TITLE>Shaft</TITLE>
      <PUBLISHED_YEAR>1972</PUBLISHED_YEAR>
      <COMMENT>he's the man</COMMENT>
      <GENRE>Soul</GENRE>
    </ALBUM>
  </ARTIST>
  <ARTIST ARTISTID="3" MAINTAINER="Lukas Feiler">
    <NAME>Ray Charles</NAME>
    <BIRTH_YEAR>1930</BIRTH_YEAR>
    <BIRTH_YEAR_TWO_DIGIT>30</BIRTH_YEAR_TWO_DIGIT>
    <BIRTH_PLACE>Mississippi</BIRTH_PLACE>
    <GENRE>Country and Soul</GENRE>
  </ARTIST>
</MUSIC_LIBRARY>