1

我有一些简单的代码,它应该返回一个 xml 字符串,但是当我运行它时,它只返回:'132963660013292910001330196400',这是所有三场音乐会的第二个智利的所有三个连接在一起。这实际上是直接从教科书中复制出来的,所以我不明白我怎么会做错才能得到这个结果。我在这里有什么误解?

$simplexml = new SimpleXMLElement(
'<?xml version="1.0"?><concerts />');
$concert1 = $simplexml->addChild('concert');
$concert1->addChild("title", "The Magic Flute");
$concert1->addChild("time", 1329636600);
$concert2 = $simplexml->addChild('concert');
$concert2->addChild("title", "Vivaldi Four Seasons");
$concert2->addChild("time", 1329291000);
$concert3 = $simplexml->addChild('concert');
$concert3->addChild("title", "Mozart's Requiem");
$concert3->addChild("time", 1330196400);
echo $simplexml->asXML();

/* SHOULD output:
<concerts><concert><title>The Magic Flute</title><time>1329636600➥
</time></concert><concert><title>Vivaldi Four Seasons</title>➥
<time>1329291000</time></concert><concert><title>Mozart's Requiem➥
</title><time>1330196400</time></concert></concerts>
*/
4

1 回答 1

1

听起来您正在通过浏览器查看脚本的输出,并且它正在尝试将文档解释为 HTML(PHP 脚本的默认内容类型)。

在最后一行(echo行)之前的任何地方添加这个

header('Content-type: text/xml');

或者,如果您想将其视为 HTML 文档,请试试这个

echo '<pre>', htmlspecialchars($simplexml->asXML()), '</pre>';

演示在这里 - http://codepad.viper-7.com/BJ2adH

于 2013-09-16T03:20:29.937 回答