我需要在运行时动态生成一个xml文件。请帮我用PHP动态生成以下XML文件。
第一种方法:
我使用SimpleXMLElement。
$xml = new SimpleXMLElement('
for ($i = 1; $i <= 8; ++$i) {
$track = $xml->addChild('track');
$track->addChild('path',"song$i.mp3");
$track->addChild('title',"Track $i - Track Title");
}
Header('Content-type: text/xml');
print($xml->asXML());
第二种方法:
使用FluidXML,您可以非常轻松地生成XML。
$tracks = fluidxml('xml');
$tracks->times(8,function ($i) {
$this->add([
'track' => [
'path' => "song{$i}.mp3",
'title' => "Track {$i} - Track Title"
]
]);
});
第三种方法:
要在PHP中创建XML文档,您应该实例化DOMDocument类,创建子节点并将这些节点附加到文档树的正确分支中。
供参考,您可以阅读http://it.PHP.net/manual/en/book.dom.PHP
在第2行,我们创建一个空的xml文档(只需指定xml版本(1.0)和编码(utf8))
现在我们需要填充xml树:
我们必须创建一个xmlnode(第5行)
我们必须将其添加到正确的位置。我们正在创建根,所以我们将它直接附加到domdocument。
注意create元素将元素追加到节点并返回插入的节点,我们保存此引用以将轨道节点附加到根节点(顺便称为xml)。
这些是基础知识,您可以在一行中创建和追加一个节点(例如,第13个),您可以使用dom api执行许多其他操作。它是由你决定。
/* create a dom document with encoding utf8 */
$domtree = new DOMDocument('1.0','UTF-8');
/* create the root element of the xml tree */
$xmlRoot = $domtree->createElement("xml");
/* append it to the document created */
$xmlRoot = $domtree->appendChild($xmlRoot);
$currentTrack = $domtree->createElement("track");
$currentTrack = $xmlRoot->appendChild($currentTrack);
/* you should enclose the following two lines in a cicle */
$currentTrack->appendChild($domtree->createElement('path','song1.mp3'));
$currentTrack->appendChild($domtree->createElement('title','title of song1.mp3'));
$currentTrack->appendChild($domtree->createElement('path','song2.mp3'));
$currentTrack->appendChild($domtree->createElement('title','title of song2.mp3'));
/* get the xml printed */
echo $domtree->saveXML();
?>
编辑:只是另一个提示:使用xmldocument(dom文档one或simplexml one)而不是打印xml的主要优点是xmltree可以使用xpath查询进行搜索
第四种方法:
// Send the headers
header('Content-type: text/xml');
header('Pragma: public');
header('Cache-control: private');
header('Expires: -1');
echo "";
echo '
// echo some dynamically generated content here
/*
*/
echo '';
?>
将其保存为.PHP
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。