php - $SimpleXML->asXML() 的格式输出;

标签 php xml formatting simplexml

标题几乎说明了一切。

如果我有类似的东西(来自 PHP 站点示例):

$xmlstr = <<<XML
<?xml version='1.0' standalone='yes'?>
<movies></movies>
XML;

$sxe = new SimpleXMLElement($xmlstr);

$sxe->addAttribute('type', 'documentary');

$movie = $sxe->addChild('movie');
$movie->addChild('title', 'PHP2: More Parser Stories');
$movie->addChild('plot', 'This is all about the people who make it work.');

$characters = $movie->addChild('characters');
$character  = $characters->addChild('character');
$character->addChild('name', 'Mr. Parser');
$character->addChild('actor', 'John Doe');

$rating = $movie->addChild('rating', '5');
$rating->addAttribute('type', 'stars');


echo("<pre>".htmlspecialchars($sxe->asXML())."</pre>");

die();

我最终会像这样输出一个长字符串:

<?xml version="1.0" standalone="yes"?>
<movies type="documentary"><movie><title>PHP2: More Parser Stories</title><plot>This is all about the people who make it work.</plot><characters><character><name>Mr. Parser</name><actor>John Doe</actor></character></characters><rating type="stars">5</rating></movie></movies>

这对于程序使用者来说很好,但对于调试/人工任务,有谁知道如何将其转换为良好的缩进格式?

最佳答案

PHP manual page for SimpleXMLElement 的评论中有多种解决方案.不是很有效,但肯定很简洁,是 Anonymous 的解决方案

$dom = dom_import_simplexml($simpleXml)->ownerDocument;
$dom->formatOutput = true;
echo $dom->saveXML();

PHP 手册页注释通常是满足常见需求的好来源,只要您先过滤掉明显错误的内容。

关于php - $SimpleXML->asXML() 的格式输出;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1191167/

相关文章:

php - 共享主机是否授予对 INFORMATION_SCHEMA 的访问权限?

php - 使用 Visual Studio 2008 编译 php 扩展,MODULE ID 与 php 不匹配

android - 如何在android中的string.xml中添加一个有很多段落的长文本

javascript - 无法接收代码

php - 使用网络摄像头或设备相机拍摄照片

xml - 使用 xslt 转换多个 xml 模式文档

java - XML 映射到 Java 对象的库,而不必在编译时从 xsd 生成源代码?

c++ boost format float - 如何指定我不想要 .和以下零

c++ - 如何设置 Clang-Format Style Options 以在捕获之前不换行?

json - 使用 PowerShell for Packer 编辑 JSON