首頁  >  文章  >  後端開發  >  把從SQL中取出的資料轉換成XMl格式_PHP教學

把從SQL中取出的資料轉換成XMl格式_PHP教學

WBOY
WBOY原創
2016-07-21 16:11:21898瀏覽


使用了php的PEAR和DB
// -------------------------------- ----------- ---------------------------------------
// | PHP 版本4.0                             🎜>|// ----------------------------------- ------ --------------------------------------
// |版權所有(c) 1997, 1998, 1999, 2000, 2001 PHP 小組             
|// ---------------------------- ------------------------------------------
// |此來源文件受PHP 許可證2.0 版的約束,       
|// |與此包捆綁在文件LICENSE 中,且是        |// | http:/ /www.php.net/license/2_02.txt。
|//|如果您沒有收到PHP 許可證副本並且無法   
|// |透過萬維網取得,請留言至          
|// | license@php.net,以便我們立即向您立即向您提供建議郵寄一份。
|// -------------------------------------------- ------------ --------------------------
// |作者:克里斯蒂安·斯托克                         
|// -------------------------------------------------- --------------------- --------------------------
//
// $Id: sql2xml.php,v 1.59 2001/11/13 10:54:02 chregu Exp $

/**
* 此類別採用 PEAR::DB-Result 物件、sql 查詢字串或陣列
*  並傳回它的 xml 表示。
*
* TODO
*   -編碼等,標頭選項
*   -錯誤檢查
*
* 使用範例
*
* include_on (*"DBce. php");
* include_once("XML /sql2xml.php");
* $db = DB::connect("mysql://root@localhost/xmltest");
* $sql2xml = new xml_sql2xml();
* //只有在您需要預設值以外的其他值時才需要下一個
* $sql2xml->setEncoding("ISO-8859-1","UTF-8" );
* $result = $db- >query("從band 中選擇*");
* $xmlstring = $sql2xml->getXML($result);
*
* 或
*
* include_once (" DB.php");
* include_once("XML/sql2xml.php");
* $sql2xml = new xml_sql2xml("my://root@localhostsql /xmltest");
* $sql2xml ->Add("select * from band");
* $xmlstring = $sql2xml->getXML();
*
* 更多文件和教學/操作方法可在以下位置找到:
*   http://php.chregu.tv/sql2xml
*
* @author   Christian Stocker
* @version $Id: sql2xml.php,v 1.59 2001/11/13 10:54:02 chregu Exp $
* @package  XML
*/
🎜>
    /**
    * 如果連接表應該巢狀輸出。
    *  表示,如果您連接了兩個或多個查詢,則後一個
    *   指定的表將前一個
    *與mysql 一起使用。其他 RDBMS
    *   您必須手動提供表格關係(請參閱 user_tableinfo)
    *
    * @var  lean    */
    var $nested = True ;

    /** 🎝>*/    /**
    * 行中的標記元素名稱
    *
    * @var    *
    * @var   
字串* @see  insertNewRow()
    */
    var $tagNameRow = "row";

   >
    /**
    *
    * @var   object PEAR::DB
    * @access private
    */
    var $user_options = array();


   

    /**
    * 在擴充類別中所使用的選項(例如在 sql2xml_ext 中)。
    * 它們透過SetOptions 作為陣列傳遞(arrary("user_options" = array());
    *  ,然後可以使用$this->user_options["bla"] 從您的    var $xmlroot;


    *  如果您不使用mysql,它特別有用,因為
    *  mysql 以外的其他RDBMS 目前無法在查詢中提供有關
    *  您的資料庫結構的正確資訊。如果您在 sql 中加入了超過 2 個
    *  表,那麼 mysql 也不可能找出
    *  您的真實關係。
    *  參數與 PEAR: 中的 fieldInfo 中的參數相同: DB 和一些
    *   其他的。它們來了:
    *  來自 PEAR::DB->fieldinfo:
    *
    *    $tableInfo[$i]["table"]   *    $tableInfo[$i]["table"] 
    *           與以某些 RDBMS/Comples 查詢與陣列,無法
    *     您可以
    *           則在此指定較精確。或者,如果您願意,該字段
    *           屬於另一張表,而不是實際所說的(是的,有
     >    *
    *    $ tableInfo[$i]["name"]     :欄位#$i的名稱。若您想要查詢或陣列提供的另一個
    *           以標籤名稱,請於此指定
    *    
    *
    *   其他資訊
    *     $tableInfo["parent_key"] [$table]     $tableInfo["parent_key"] [$table]  :$table 父鍵的索引。
    *           這是在其中找出已變更的字段,如果此
    *          *           父表。
    *
    *     $tableInfo["parent_table"][$table]: $table 的父錶名稱。
    *
    * @var      array
    * @access private    * 編碼類型,資料庫的輸入有
    */
    var $encoding_from  = "ISO-8859-1";

    /**
    * 編碼類型,xml 中的輸出應該有
    *(注意 domxml 目前只支援 UTF-8,或至少看起來是這樣)
    */
   姓名";

    /**
    * 建構子
    * 建構子可以使用Pear::DB「資料來源名稱」(例如
    *  「mysql://user:passwd@localhost/name」),然後連接到資料庫,或PEAR::DB 物件鏈接,如果您之前已經連接過
    *  之前的資料庫。
    "  如果您沒有提供$dsn 任何內容,則稍後只能使用
    * 新增內容pear::db-resultset 或作為陣列提供sql-strings 將    * 如果您想為
    *  root- 提供另一個名稱,請使用$root 參數。 >    *  根元素,但僅當您新增結果集/陣列/sql-string時。 PEAR::DB「資料來源名稱」或物件DB 物件
    * @param  string $root  名稱xml-doc 根元素。*/
    function XML_sql2xml ($dsn = Null, $root = "root") {
如果字符串它必須是dsn 識別碼;

        if (is_string( $dsn))
                    $this->db = DB::Connect ($dsn);
             if (DB::isError($ this->db))
         print "XML_sql2xml 的給定dsn 在檔案".__FILE__." 的第".__LINE__."
n" 行無效;
                return new DB_Error($this->db->code          }

        elseif (is_object($dsn ) && DB::isError($dsn))
        {
            🎜>            return new DB_Error($dsn-> code,PEAR_ERROR_DIE);
     它已經是一個連線識別碼
        elseif (get_parent_class($dsn ) == "db_common")
        {
            $ 

        $this->xmldoc = domxml_new_xmldoc('1.0');

        //oehm,但不幸的解決方案似乎知道什麼?
        $ this->xmldoc->encoding = $this->encoding_to;        

  $this->xmlroot = $this->xmldoc->add_root($root );
            //PHP 4.0.6 有$root- >name 作為標記名,請在此處檢查...
      }))
            {
                     }

    }

    /**
    * 將新結果集新增至xml-object
    *  給予sql-query-string、pear::db_result 物件或陣列作為
 this   >    *  輸入的方法,並加到$this->xmldoc
    *
    * @param    字串sql-str 🎜>    * @access   public
    * @see      addResult()、addSql()、addArray(    addResult()、addSql()、addArray( */
    函數add ($resultset, $params = Null )
    {

        ($resultset)) {
            if ( preg_match("/.xml$/",$resultset)) {
   >            }
            elseif (preg_match("/.*select.* from.*/i" ,  $resultset)) {
                          else {
                $this- > ;AddXmlString($結果集);
            }

        }            $this->AddArray($結果集) ;
        }

           $this->AddResult($resultset);
        }
    }

    /**
    * 將xml 檔案的內容新增至$this->xmldoc,與一般結果集處於相同等級
    *(大部分位於 下方)
    *    * @param    mixed xpath     * @param    mixed xpath  的標籤結果
    * @access   public
    * @see      doXmlString2Xml()
     doXmlString2Xml()
      doXmlString2Xml()
    */

    function addXmlFile($file,$xpath = Null) ;
        $content = fread( $fd, filesize( $file ) );
        fclose( $f 🎜>    }

    /**
    * 將xml 字串的內容新增至$this->xmldoc,與一般結果集處於相同等級
    *(大部分位於 下方)
   
    * @param    mixed xpath     * @param    mixed xpath  先前的標籤結果
    * @access   public
    * @see      doXmlString2Xml()
      doXmlString2Xml()
      */




http://www.bkjia.com/PHPjc/313946.html

www.bkjia.com

http: //www.bkjia.com/PHPjc/313946.htmlTechArticle使用了php的PEAR和DB ?php // ------------- -------------------------------------------------- ------- // | PHP 版本4.0 |// ---------------------------------- ---------------------- ----...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn