PHP以漂亮的格式打印xml文件

时间:2019-09-24 12:55:12

标签: php xml pretty-print

我需要通过Apache请求在浏览器中显示一个XML文件。因此,我可以将文件提供给freeswitch。我的PHP代码是这样的:

<?php
header('Content-Type: text/xml');
$xml=simplexml_load_file("test.xml") or die("not found");
echo "<pre>".print_r($xml,true)."</pre>";
?>

但我得到以下输出:

<pre>SimpleXMLElement Object
(
[@attributes] => Array
    (
        [type] => freeswitch/xml
    )

[section] => SimpleXMLElement Object
    (
        [@attributes] => Array
            (
                [name] => configuration
            )

        [configuration] => SimpleXMLElement Object
            (
                [@attributes] => Array
                    (
                        [description] => Network Lists
                        [name] => acl.conf
                    )

                [network-lists] => SimpleXMLElement Object
                    (
                        [list] => Array
                            (
                                [0] => SimpleXMLElement Object
                                    (
                                        [@attributes] => Array
                                            (
                                                [name] => localhost_allow
                                                [default] => allow
                                            )

                                        [node] => SimpleXMLElement Object
                                            (
                                                [@attributes] => Array
                                                    (
                                                        [type] => allow
                                                        [cidr] => 127.0.0.1/32
                                                    )
)
</pre>

我只需要在浏览器中输出漂亮的xml。或者,我可以通过其他方式提供xml文件。任何想法? 谢谢

2 个答案:

答案 0 :(得分:4)

您不需要将XML文件作为对象加载。 只需加载文件的原始内容并打印:

$file = file_get_contents("test.xml");
echo $file;

浏览器将为您完成其余的工作。

答案 1 :(得分:2)

也许这可以解决问题,如果没有,我相信您必须解析xml,然后可以根据需要对其进行格式化。

 <?php
    header('Content-Type: text/xml');
    $xml=simplexml_load_file("test.xml") or die("not found");
    echo $xml->asXML();
 ?>