如何使用PHP动态生成XML文件?

13 浏览
0 Comments

如何使用PHP动态生成XML文件?

我需要在运行时动态生成XML文件。请使用PHP帮助我动态生成以下XML文件。



 
     song1.mp3
     
 
 
     song2.mp3
     
 
 
     song3.mp3
     
 
 
     song4.mp3
     
 
 
     song5.mp3
     
 
 
     song6.mp3
     
 
 
     song7.mp3
     
 
 
     song8.mp3
     
 

admin 更改状态以发布 2023年5月20日
0
0 Comments

在PHP中创建XML文档需要实例化DOMDocument类,创建子节点并将这些节点附加到文档树的正确分支。

参考资料可以阅读https://www.php.net/manual/en/book.dom.php

现在我们将快速浏览下面的代码。

  • 在第2行,我们创建一个空的xml文档(只指定了xml版本(1.0)和编码(utf8))
  • 现在我们需要填充xml树:
    • 我们必须创建一个xml节点(第5行)
    • 并将其附加到正确的位置。我们正在创建根节点,因此将其直接附加到domdocument中。
    • 请注意,createElement方法将元素附加到节点并返回插入的节点,我们保存此引用以将track节点附加到根节点(顺便称为xml)。

这些是基础知识,您可以仅用一行代码创建和附加节点(例如,第13行),您可以使用dom api做很多其他事情。由你决定。

createElement("xml");
    /* append it to the document created */
    $xmlRoot = $domtree->appendChild($xmlRoot);
    /* you should enclose the following lines in a loop */
    $currentTrack = $domtree->createElement("track");
    $currentTrack = $xmlRoot->appendChild($currentTrack);
    $currentTrack->appendChild($domtree->createElement('path','song1.mp3'));
    $currentTrack->appendChild($domtree->createElement('title','title of song1.mp3'));
    $currentTrack = $domtree->createElement("track");
    $currentTrack = $xmlRoot->appendChild($currentTrack);
    $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文档或simplexml文档)的主要优点之一而不是打印xml是,可以使用xpath查询搜索xml树

0
0 Comments

我会使用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());
?>

$xml->asXML()也可以接受一个文件名作为参数来保存到该文件。

0