PHPEye开源社区 » PHP周边技术讨论区 » 介绍 Pear::XML_Serializer
《Programming PHP》第二版上市
2007-5-24 03:04 cid73
介绍 Pear::XML_Serializer

在 AJAX 应用中我们经常需要向客户端传送 XML, 现在介绍一个工具 Pear::XML_Serializer

安装方法:
[code]
#pear install --force XML_Serializer
[/code]

因为 XML_Serializer 没有发布 stable 版本, 我们要加上 --force 参数

假设我们通过数据库获得如下数组:

[code]
$employees = array(
  array(
    'name' => 'Jimi',
    'department' => 'Sales',
    'email' => 'jimi@company.com'
  ),
  array(
    'name' => 'Cindy',
    'department' => 'Financial',
    'email' => 'cindy@company.com'
  ),
  array(
    'name' => 'Ruby',
    'department' => 'Marketing',
    'email' => 'ruby@company.com'
  )
);
[/code]

我们可以通过 XML_Serializer 转换出一个 XML 文档:

[code]
require_once 'XML/Serializer.php';
// 初始化
$serializer = new XML_Serializer(array(
  "indent"          => "\t",        // 缩进, 也可为空格
  "linebreak"       => "\n",        // 换行符
  "typeHints"       => false,       // 附带每个节点的 PHP 类型
  "addDecl"         => true,        // 加入 XML 文档头
  "encoding"        => "UTF-8",     // 文档编码
  "rootName"        => "employees", // 根节点名称
  "defaultTagName"  => "employee"   // 默认节点名称
));

$serializer->serialize($employees);

header('Content-Type: application/xml');

echo $serializer->getSerializedData();
[/code]

结果如下:

[code]
<?xml version="1.0" encoding="UTF-8"?>
<employees>
        <employee>
                <name>Jimi</name>
                <department>Sales</department>
                <email>jimi@company.con</email>
        </employee>
        <employee>
                <name>Cindy</name>
                <department>Financial</department>
                <email>cindy@company.con</email>
        </employee>
        <employee>
                <name>Ruby</name>
                <department>Marketing</department>
                <email>ruby@company.con</email>
        </employee>
</employees>
[/code]

2007-5-24 08:42 Haohappy
Good,确实非常实用,不然手写XML太累了。但不知道效率如何。

2007-6-11 20:16 smallcat
不错。可以试用一下。谢谢楼主

页: [1]
查看完整版本: 介绍 Pear::XML_Serializer


Powered by Discuz! Archiver 5.5.0  © 2001-2006 Comsenz Inc.