当前位置: 首页 > 知识库问答 >
问题:

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

呼延智明
2023-03-14

我必须在运行时动态生成一个xml文件。请帮助我使用PHP动态生成下面的XML文件。

<?xml version="1.0" encoding="UTF-8"?>
<xml>
 <track>
     <path>song1.mp3</path>
     <title>Track 1 - Track Title</title>
 </track>
 <track>
     <path>song2.mp3</path>
     <title>Track 2 - Track Title</title>
 </track>
 <track>
     <path>song3.mp3</path>
     <title>Track 3 - Track Title</title>
 </track>
 <track>
     <path>song4.mp3</path>
     <title>Track 4 - Track Title</title>
 </track>
 <track>
     <path>song5.mp3</path>
     <title>Track 5 - Track Title</title>
 </track>
 <track>
     <path>song6.mp3</path>
     <title>Track 6 - Track Title</title>
 </track>
 <track>
     <path>song7.mp3</path>
     <title>Track 7 - Track Title</title>
 </track>
 <track>
     <path>song8.mp3</path>
     <title>Track 8 - Track Title</title>
 </track>

null

共有2个答案

桂浩言
2023-03-14

要在PHP中创建XMLdocument,您应该实例一个DOMDocument类,创建子节点并将这些节点追加到文档树的正确分支中。

有关参考,您可以阅读http://it.php.net/manual/en/book.dom.php

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

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

    这些是基础,您可以在一行(例如,第13行)中创建并追加一个节点,您还可以使用dom API执行许多其他操作。由你决定。

    <?php    
        /* 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文档或simplexml文档)而不是打印xml的主要优点是xmltree可以通过xpath查询进行搜索

于高雅
2023-03-14

我将使用SimpleXmlElement。

<?php

$xml = new SimpleXMLElement('<xml/>');

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());
 类似资料:
  • 我试图使用Xerces-J动态生成XML schema,但出现了以下错误,希望得到相关帮助。

  • 问题内容: json.php代码 我必须生成文件。 问题答案: 这是一个示例代码:

  • 目前,我正在生成表头和行,但我希望使行更具动态性。如何在不重复一次的情况下打印行的数据?我怎样才能像标题一样使用1语句呢?所以基本上我只需要调用{row},它应该生成该行包含的所有内容,而不必键入{row.school}等等。。。

  • 问题内容: 我之前从未使用过JSON,并且尝试使用以下javascript:http : //jqueryselectcombo.googlecode.com/files/jquery.selectCombo1.2.6.js 它需要以下格式的JSON输出: 您能否指导我举一个有关如何使用PHP生成上述JSON输出的示例? 问题答案: 最简单的方法可能是从所需的对的关联数组开始: 然后使用forea

  • 问题内容: 我正在尝试在我的网站上生成QR码。他们要做的就是在其中包含一个URL,该URL将在我的网站上提供。最简单的方法是什么? 问题答案: 值得补充的是,除了@abaumg发布的QR码库外,Google还提供了一个 [QR Code API] QRCodes API非常感谢链接更新。 要使用this,基本上是: 是您要生成的QR图像的尺寸, 这是您要更改为QR码的url编码的字符串,并且 的是

  • 问题内容: 我想根据以下条件在PHP中修改我的xml文件。 我的xml结构如下所示: 现在每次在xml进行修改时,都带有type属性。 意味着,第一次搜索字符串==“ hotels”时,与酒店有关的数据将以上述格式存储在xml文件中。 现在,当再次搜索酒店时,它将删除具有带有值酒店的子元素的元素。 然后在与学校相关的数据附加到xml文件时,进行针对学校的不同查询。与酒店的数据。 现在再次搜索学校已