如何使用PHP动态生成XML文件
|
我需要在运行时动态生成一个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 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
