Конечно, очень может быть, я заново попытался изобрести велосипед, сильно не ругайте.. php изучаю не так давно, так что..
Для любителей пописать свои модули предлагаю небольшое свое решение для того чтобы получать простое XML-дерево из SQL запроса. Если есть другое решение - подскажите - буду только рад!
function genSimpleXml( $oXml, $oDom, $oSql, $oRoot ) {
/*
Функция, которая создает простой XML по следующим параметрам:
$oXml - родитель внутреннего XML участка
$oDom - объект Dom
$oSql - SQL выборка, по которой создается XML
$oRoot - Название родителя для внутреннего XML
*/
$q = $this->DB->select( $oSql );
while ( $rd = mysql_fetch_array( $q ) ) {
$root = $oDom->create_element( $oRoot );
$i = 0;
while ( $i < mysql_num_fields( $q ) ) {
$child = $oDom->create_element( mysql_field_name( $q, $i ) );
$child->append_child( $oDom->create_text_node( iconv("windows-1251","utf-8",$rd[ mysql_field_name( $q, $i ) ]) ) );
$root->append_child( $child );
$i++;
}
$oXml->append_child( $root );
}
}
и пример его вызова:
var $Id; // ID - компании
var $DB; // ID DB
function initialize() {
$this->DB = new Mysql();
}
function showCompanylists( $xslName ) {
myClass::initialize();
$dom = domxml_new_doc("1.0");
$root = $dom->create_element("document");
$companys = $dom->create_element("companys");
$root->append_child($companys);
$sql = 'SELECT * FROM `company` ORDER BY `name` ASC';
myClass::genSimpleXml( $companys, $dom, $sql, 'company' );
$dom->append_child($root);
$xsl = new xsl();
return $xsl->build( $dom->dump_mem(true, "windows-1251"), $xslName );
}
Все функции находятся в классе MyClass...