使用 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; }
-
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; }
-
相关阅读 更多 +
排行榜 更多 +