Ну примерно как-то так:
<?php
// создадим экземпляр класса SiteUsers
$SiteUsers = &singleton('SiteUsers');
// получим список пользователей
$resource = $SiteUsers->GetAllUsers();
// подготовим массив для генерации XML
// подробнее см. api класса ExternalXml, метод GenXml()
$users = array();
$usersCount = 0;
while ($row = mysql_fetch_assoc($resource)) {
$usersCount++;
$user_item = array();
$user_item['xml_name'] = 'user';
$user_item['attribute'] = array('id' => $row['site_users_id']);
$user_value = array();
foreach ($row as $key => $value) {
if ($key != 'site_users_id') {
$user_value['xml_name'] = $key;
$user_value['value'] = $value;
}
}
$user_item['value'] = $user_value;
$users[] = $user_item;
}
// cгенерируем XML
$ExternalXml = &singleton('ExternalXml');
$type = 1;
$usersxml = '<?xml version="1.0" encoding="windows-1251"?><users count="'
. $usersCount
. '">'
. $ExternalXml->GenXml($users, $type)
. '</users>';
// Применим XSL-шаблон и выведем страницу
$xsl = &singleton('xsl');
$xsl_name = 'XSL_для_пользователей_сайта';
echo $xsl->build($xml, $xsl_name);
?>
Естественно, шаблон "XSL_для_пользователей_сайта" предварительно должен быть создан.
В самом простом виде он будет выглядеть, например, так:
<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="Windows-1251" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
<xsl:template match="/users">
<xsl:apply-templates select="user"/>
</xsl:template>
<xsl:template match="/users/user">
<p>Идентифтикатор пользователя
<xsl:value-of select="@id"/>,
логин -
<xsl:value-of select="site_users_login"/>.</p>
</xsl:template>
</xsl:stylesheet>
Это все так, навскидку, на живой системе я не тестил, но логика именно такая и вроде ничего не забыл. Хотя может с первого раза на что-нибудь ругнется...