把从SQL中取出的数据转化成XMl格式

 更新时间:2016年11月25日 16:56  点击:1686
使用了php的PEAR和DB
<?php
// +----------------------------------------------------------------------+
// | PHP version 4.0                          |
// +----------------------------------------------------------------------+
// | Copyright (c) 1997, 1998, 1999, 2000, 2001 The PHP Group        |
// +----------------------------------------------------------------------+
// | This source file is subject to version 2.0 of the PHP license,    |
// | that is bundled with this package in the file LICENSE, and is        |
// | available at through the world-wide-web at              |
// | http://www.php.net/license/2_02.txt.                  |
// | If you did not receive a copy of the PHP license and are unable to     |
// | obtain it through the world-wide-web, please send a note to       |
// | license@php.net so we can mail you a copy immediately.            |
// +----------------------------------------------------------------------+
// | Authors: Christian Stocker <chregu@phant.ch>               |
// +----------------------------------------------------------------------+
//
// $Id: sql2xml.php,v 1.59 2001/11/13 10:54:02 chregu Exp $
/**
* This class takes a PEAR::DB-Result Object, a sql-query-string or an array
*    and returns a xml-representation of it.
*
面向的读者
这篇文章的面向对象是所有对PHP5的XML新功能感兴趣的各个水平的PHP开发者。我们假定读者掌握XML的基本知识。然而,如果你已经在你的PHP当中使用了XML,那么这篇文章也会让你受益非浅。
介绍
在当今的互联网世界,XML已经不再是一个时髦词了,它已经被广泛的接受和规范的使用了。因此相对于PHP4,PHP5对于XML的支持更受到了重视。在PHP4中你面对的几乎都是非标准,API中断,内存泄漏以及其它不完全的功能。尽管有些不足已经在PHP4.3中得到改进,开发者们还是决定抛弃原有的代码,在PHP5重写全部代码。
这篇文章将对PHP5中关于XML的所有令人激动的新特性逐一介绍。
PHP4 的 XML
早期的PHP版本就已经开始支持XML了,而这只是一个基于SAX的接口,它可以轻松的解析任何XML文档。随着PHP4中加入了DOMXML扩展模块,XML被更好的支持了。后来XSLT做为补充被加了进来。在整个PHP4的阶段,其它一些功能如HTML,XSLT和DTD验证也被加到了DOMXML扩展中,不幸的是,由于XSLT和DOMXML扩展始终处于实验阶段,API部分也被不止一次的修改,它们还是不能以默认方式安装。此外,DOMXML扩展没有遵循W3C制定的DOM标准,而有自己的命名方法。虽然在PHP4.3中这部分得到了改善并且许多内存泄漏和其它一些功能也得以修复,但它始终没有发展到一个稳定的阶段,一些深入的问题已经几乎不可能修复。只有SAX扩展被已默认方式安装,其它的一些扩展从未得到广泛的使用。
基于所有这些原因,PHP的XML开发者决定在PHP5重写全部代码,并遵循使用标准。
PHP5的XML
在PHP5中所有支持XML的部分几乎全部重新编写.现在的所有XML扩展都是基于GNOME项目的LIBXML2库。这将允许在不同的扩展模块之间互相操作,核心开发者只需要在一个底层的库上进行开发。例如,复杂的内存管理只实现一次就可以让所有XML相关扩展得到改善。
除了继承PHP4中闻名的SAX解析器之外,PHP5还支持遵循W3C标准的DOM和基于LIBXSLT引擎的XSLT。同时还加入了PHP独有的SimpleXML扩展和符合标准的SOAP扩展。随着XML越来越被重视,PHP开发者决定在默认安装方式中加入更多对XML的支持。这就意味着你现在可以使用SAX,DOM和SimpleXML,而这些扩展将会在更多的服务器上安装。然后对于XSLT和SOAP的支持,还需要在PHP编译时被显式的配置。
数据流的支持
现在所有的XML扩展都支持PHP数据流,即使你不从PHP中直接访问。例如,在PHP5中你可以从一个文件或从一条指令访问数据流。基本上你能够在任何可以访问普通文件的地方访问PHP数据流。
摘要
本论文简要介绍了PHP、XML、PDF等技术的原理以及它们的应用情况。力图运用PHP面向对象的特性,构建出一套基于PHP和XML的在线PDF文档生成系统。文中详细探讨了整个系统的组成部分以及各自的实现过程。并在最后给出一个运用这套系统实现的动态创建报表的实例。
Abstract
This article introduced the fundamentls of PHP,XML and PDF and their application situation at present,expecting to build a PHP&XML-based dynamic PDF documents creating system through the PHP’s OO features. Furthermore,we discussed in detail on the components of the whole system and their respective realizing methods. Finally,we represented an example of creating reports dynamically using this system.

关键词
PHP  XML XSLT  DTD  PDF


1. 引言
在信息技术飞速发展的时代,无论政府、企业还是个人,他们对如何通过信息技术提高自身工作效率,节省开支具有浓厚的兴趣。他们急切要找到一种优秀的技术,可以把传统上以纸张为媒介的文件、报表、票单据、手册、申请书等等等等转化为一种可以非常方便的在互联网以及内部网络自动生成、传播、下载、浏览、打印的电子文档。而如今最为热门的“无纸化办公”、“电子商务”等等都将以此为基础。

这种文档格式就Adobe公司的PDF(可移植文档格式),它已是全世界电子版文档分发的公开实用标准 。
  任何浏览器只要安装Acrobat reader 5.0 的插件,便可以自由浏览、下载、打印PDF文档。PDF无疑具有其它电子文档格式不可比拟的优越性。

我们知道B/S系统作为当前以及将来最流行的一种软件架构,可以很好的实现各种基于浏览器的Web应用程序,而PHP作为一种优秀的Web编程语言,特别适合开发用于处理用户表单输入,查询数据库等针对浏览器用户的前端应用程序。由于PHP是开放源码的,这使得它的使用比其它同类的Web脚本语言更为广泛,它的功能也在不断的扩充和完善之中。现在最新的PHP版本已经可以很好的支持PDF,XML等。通过系统提供的API,我们能非常快捷的生成PDF文档,而最具魅力的是,我们可以通过PHP,查询数据库或XML数据文件并将结果插入所生成的PDF文档之中,形成各种具有绝佳的浏览和打印效果的报表、单据、手册等。

不难看出,结合PHP、XML、PDF三项技术,构造出一种可以在线动态生成PDF文档的系统是极具现实意义的,其主要表现在:
我承认我不是PHP的领导者。然而,在看了一些PHP的信息之后,我认为有一些功能需要添加到其中来处理数据库连接和整合XML。要做到这一点,我想我可以创建一个处理连接MySQL和使用PHP中的domxml功能来提供XML输出的类。然后我就可以在PHP脚本的任何地方声明这个类并且在需要使用它的时候可以提供XML功能。

我假设人们使用PHP是原因是他的标价:免费。MySQL为需要向系统中增加数据库功能的开发人员提供一个免费的数据库解决方案。这些解决方案的缺点是在设置和管理的时候有些复杂。
我在这篇文章中使用的PHP版本是PHP 4.3.4 for Win32,可以从The PHP Group下载。MySQL的版本是MySQL 4.0.16 for Win32,可以从MySQL.com得到。MySQL的安装很容易??只要简单地按照其指令来就可以了。PHP稍微有一点复杂。
在PHP的下载页面有两个文件:一个ZIP文件和一个安装文件。因为我们需要添加ZIP文件中的扩展,所以这两个文件都要下载。下面是下载之后的所要做的一个简单步骤:
1. 使用安装文件安装PHP。
2. 解压iconv.dll,将其放到Windows的系统文件夹中。
3. PHP安装目录下创建一个目录(默认为C:PHP)“extensions”。
4. 解压php_domxml.dll文件到这个目录。
5. 在Windows文件夹下找到php.ini文件,然后使用记事本或其它文本编辑器打开。在这个文件中找到“extensions_dir=”,然后将其值修改为第3步设置的扩展文件夹的完整路径。
6. 找到“;extension=php_domxml.dll”,删除本行开头的分号。
7.重新启动Web服务器。
然后在你的Web目录下使用下面的代码创建一个PHP页面“test.php”。(这段代码在运行IIS 5.0的Windows 2000 SP3能够正常运行。)
<?php
$myxml = new CMySqlXML("localhost", "test_user", "password", "test");
echo $myxml->run_sql_return_xml("SELECT * FROM users");
classCMySqlXML {
var $host;
var $user;
var $password;
var $db;
functionCMySqlXML($host, $user, $password, $db) {
$this->host = $host;
$this->user = $user;
$this->password = $password;
$this->db = $db;
}
functionrun_sql_return_xml($sql_string) {
$connection = mysql_connect($this->host, $this->user, $this->password,
[!--infotagslink--]

相关文章

  • C#连接SQL数据库和查询数据功能的操作技巧

    本文给大家分享C#连接SQL数据库和查询数据功能的操作技巧,本文通过图文并茂的形式给大家介绍的非常详细,需要的朋友参考下吧...2021-05-17
  • php简单数据操作的实例

    最基础的对数据的增加删除修改操作实例,菜鸟们收了吧...2013-09-26
  • 解决Mybatis 大数据量的批量insert问题

    这篇文章主要介绍了解决Mybatis 大数据量的批量insert问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-09
  • Antd-vue Table组件添加Click事件,实现点击某行数据教程

    这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-17
  • 详解如何清理redis集群的所有数据

    这篇文章主要介绍了详解如何清理redis集群的所有数据,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-02-18
  • vue 获取到数据但却渲染不到页面上的解决方法

    这篇文章主要介绍了vue 获取到数据但却渲染不到页面上的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-11-19
  • Json格式详解

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成...2021-11-05
  • php把读取xml 文档并转换成json数据代码

    在php中解析xml文档用专门的函数domdocument来处理,把json在php中也有相关的处理函数,我们要把数据xml 数据存到一个数据再用json_encode直接换成json数据就OK了。...2016-11-25
  • mybatis-plus 处理大数据插入太慢的解决

    这篇文章主要介绍了mybatis-plus 处理大数据插入太慢的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-18
  • postgresql数据添加两个字段联合唯一的操作

    这篇文章主要介绍了postgresql数据添加两个字段联合唯一的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-04
  • Vue生命周期activated之返回上一页不重新请求数据操作

    这篇文章主要介绍了Vue生命周期activated之返回上一页不重新请求数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-26
  • 解决vue watch数据的方法被调用了两次的问题

    这篇文章主要介绍了解决vue watch数据的方法被调用了两次的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-11-07
  • c# socket网络编程接收发送数据示例代码

    这篇文章主要介绍了c# socket网络编程,server端接收,client端发送数据,大家参考使用吧...2020-06-25
  • vue 数据(data)赋值问题的解决方案

    这篇文章主要介绍了vue 数据(data)赋值问题的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-29
  • Python3 常用数据标准化方法详解

    这篇文章主要介绍了Python3 常用数据标准化方法详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-03-24
  • php实例分享之html转为rtf格式

    核心代码: 复制代码 代码如下:<!--?php$html2RTFCom = new COM("HTML2RTF.Converter");$html2RTFCom--->PreserveImages = true;$html2RTFCom->PageNumbers = 1;$html2RTFCom->PageNumbersAlignH = 1;$html2RTFCom->Pa...2014-06-07
  • node.js从数据库获取数据

    这篇文章主要为大家详细介绍了node.js从数据库获取数据的具体代码,nodejs可以获取具体某张数据表信息,感兴趣的朋友可以参考一下...2016-05-09
  • Pycharm 设置默认解释器路径和编码格式的操作

    这篇文章主要介绍了Pycharm 设置默认解释器路径和编码格式的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-02-05
  • 分享MYSQL插入数据时忽略重复数据的方法

    使用下以两种方法时必须把字段设为”主键(PRIMARY KEY”或”唯一约束(UNIQUE)”。1:使用REPLACE INTO (此种方法是利用替换的方法,有点似类于先删除再插入) 复制代码 代码如下:REPLACE INTO Syntax REPLACE [LOW_PRIO...2013-10-04
  • PostgreSQL 恢复误删数据的操作

    这篇文章主要介绍了PostgreSQL 恢复误删数据的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-01-18