Написание модулей. SQL2XML

#
Написание модулей. SQL2XML
Конечно, очень может быть, я заново попытался изобрести велосипед, сильно не ругайте.. 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...
#
Re: Написание модулей. SQL2XML
Авторизация