domDocument的formatOutput属性写入内联

时间:2014-10-26 16:06:10

标签: php xml xml-parsing

我开始学习如何使用domDocumentSimpleXML类在PHP中创建和解析xml。

在阅读domDocument类定义时,我看到formatOutput的一个属性说明了这一点:

  

很好地使用缩进和额外空间格式化输出。

我添加了一些示例代码并将formatOutput设置为true:

<?php

try{
    $dom = new domDocument("1.0");
    $dom->preserveWhiteSpace = false;
    $dom->formatOutput = true;

    $user = $dom->createElement("Users");
    $root = $dom->appendChild($user);

    $sxe = simplexml_import_dom($dom);

    $user1 = $sxe->addChild('user');
    $user1->addChild("firstname", "Billy");
    $user1->addChild("lastname", "Anyteen");
    $user1->addAttribute('role', 'student');

    $user2 = $sxe->addChild('user');
    $user2->addChild('firstname', 'Debbie');
    $user2->addChild('lastname', 'Little');
    $user2->addAttribute('role', 'teacher');

    $xmlString = $sxe->saveXML();
    echo $xmlString;

}catch (Exception $d){
    echo $e->getMessage();
}

当我在浏览器的开发人员工具网络选项卡中或通过命令行php查看输出时,输出内联:

Chrome开发工具:

<?xml version="1.0"?>
<Users><user role="student"><firstname>Billy</firstname><lastname>Anyteen</lastname></user><user role="teacher"><firstname>Debbie</firstname><lastname>Little</lastname></user></Users>

命令行:

$ php index.php
<?xml version="1.0"?>
<Users><user role="student"><firstname>Billy</firstname><lastname>Anyteen</lastname></user><user role="teacher"><firstname>Debbie</firstname><lastname>Little</lastname></user></Users>

这是预期的结果吗?从属性描述我希望输出看起来像这样:

<?xml version="1.0"?>
<Users>
    <user role="student">
        <firstname>Billy</firstname>
        <lastname>Anyteen</lastname>
    </user>
    <user role="teacher">
        <firstname>Debbie</firstname>
        <lastname>Little</lastname>
    </user>
</Users>

如果formatOutput属性不是我应该获得这种间距和缩进的方式,那么我是否有办法以这种方式获得输出? (我已经看到了提到的标签,但它似乎是一个折旧的标签)。

0 个答案:

没有答案