发新话题
打印

关于介绍 Pear::XML_Serializer

关于介绍 Pear::XML_Serializer

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

安装方法:
复制内容到剪贴板
代码:
#pear install --force XML_Serializer
因为 XML_Serializer 没有发布 stable 版本, 我们要加上 --force 参数

假设我们通过数据库获得如下数组:
复制内容到剪贴板
代码:
$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'
  )
);
我们可以通过 XML_Serializer 转换出一个 XML 文档:
复制内容到剪贴板
代码:
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();
结果如下:
复制内容到剪贴板
代码:
<?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>
如果觉得手写XML太累,这个东东不错哦~~

TOP

发新话题