我开始学习如何使用domDocument
和SimpleXML
类在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
属性不是我应该获得这种间距和缩进的方式,那么我是否有办法以这种方式获得输出? (我已经看到了提到的标签,但它似乎是一个折旧的标签)。