文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>使用 PHP 将 SQL 转换为 XML(上)

使用 PHP 将 SQL 转换为 XML(上)

时间:2007-11-09  来源:panzt

XML目前已经形成事实上的编程接口的标准,一个程序是否具有扩展能力,看其对xml的支持能力就基本一目了然,在IBM Developerworks 看到一篇很有帮助的教程文档,原文地址如下:
http://www.ibm.com/developerworks/cn/xml/x-query2xml/
,是PEAR类库的一个xml的组件,功能强大,只要你的数据库设计的OK,就可以依据这个组件从XML中挖掘想要的数据。
OK,闲话少说:
1、安装PEAR和XML_Query2XML以及MDB2和其mysql驱动
pear install --alldeps XML_Query2XML
pear install MDB2_Driver_mysql

2、先睹为快:
getFlatXML($sql);
   
    // read XSL stylesheet data
    $xsl = new DOMDocument;
    $xsl->load('country.xsl');
   
    // initialize XSLT engine
    $xslp = new XSLTProcessor;
   
    // attach XSL stylesheet object
    $xslp->importStyleSheet($xsl);
   
    // perform transformation
    header('Content-Type: text/html');
    echo $xslp->transformToXML($xml);
} catch (Exception $e) {
    echo $e->getMessage();
}
?>
对了示例数据库下面提供下载:

文件:
world.sql.zip
大小:
89KB
下载:
下载
以及xsl文件:
   
        
            
               
                td { text-align: center; padding: 3px; }
                .head { font-style: italic; }
               
            
            
               
                    
                        
                           
                                
                                    
                                
                           
                        
                    
                    
                        
                    
               
            
        
   
   
        
            
        
   
   
        
            
        
   
3、上面只是简单的提供数据库查询结果转xml并有xsl格式化输出,下面来点特别的:
getXML($sql_1, array(
            'idColumn' => 'code',
            'rootTag' => 'countries',
            'rowTag' => 'country',
            'attributes' => array('code', 'name', 'continent'),
            'elements' => array('cities' => array(
                'sql' => array('data' => array('code'), 'query' => $sql_2),
                'idColumn' => 'id',
                'rootTag' => 'cities',
                'rowTag' => 'city',
                'attributes' => array('name','district','population'))
            )
        )   
    );
   
    // read XSL stylesheet data
    $xsl = new DOMDocument;
    $xsl->load('countries.xsl');
   
    // initialize XSLT engine
    $xslp = new XSLTProcessor;
   
    // attach XSL stylesheet object
    $xslp->importStyleSheet($xsl);
   
    // perform transformation
    header('Content-Type: text/html');
    echo $xslp->transformToXML($xml);
} catch (Exception $e) {
    echo $e->getMessage();
}
?>
注意粗红字体部分,一句话概括的说就是在序列化xml的时候,不只可以用一个sql,还可以把一个sql的查询结果作为第二个sql查询的依据从而生成xml
counties.xsl的代码如下
   
        
            
               
                td { text-align: center; padding: 3px; }
                .head { font-style: italic; }
               
            
            
               
                     -
                    
                        
                           
                                
                                
                                    
                                
                                
                           
                        
                        
                           
                        
                    
               
            
        
   
   
      
        
        
            
        
        
   
   
        


相关阅读 更多 +
排行榜 更多 +
模拟梦幻人生 v2.0.1 安卓版

模拟梦幻人生 v2.0.1 安卓版

飞行射击 下载
模拟梦幻人生 v2.0.1 安卓版

模拟梦幻人生 v2.0.1 安卓版

飞行射击 下载
模拟梦幻人生 v2.0.1 安卓版

模拟梦幻人生 v2.0.1 安卓版

飞行射击 下载