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]