【问题标题】:How to create a basic XML file in PHP如何在 PHP 中创建一个基本的 XML 文件
【发布时间】:2016-04-28 18:56:11
【问题描述】:

我想用 PHP 生成一个基本的XML,并且该文件可以保存在目录中并可以编辑...

这是结构:

<?xml version="1.0" encoding="UTF-8"?>
   <user>
      <id> 1254</id>      
      <userName>Melanie Woods</userName>

      <channel> 
         <host>  www.natgeo.org   </host>
         <item>  http://animals.natgeo.com/feed.xml   </item>
         <item>  http://birds.natgeo.com/feed.xml   </item>
      </channel>
     /////....The can add as many <'channels'> as they want....
     /////And as many <'items'>' in the channel as they want
       <channel> 
         <host>  www.bbc.com   </host>
         <item>  http://america.bbc.com/feed.xml   </item>
         <item>  http://asia.bbc.com/feed.xml   </item>
         <item>  http://europe.bbc.com/feed.xml   </item>
         <item>  http://australiue.bbc.com/feed.xml   </item>
      </channel>

   </user>

几个小时以来,我已经尝试了很多方法,但仍然无法找出实现这一目标的最佳方法。

挑战在于如何保存文件并在用户考虑添加删除调用它 itemchannel 形成 XML 文件。

假设他们想要添加:

<channel>
<host>www.cnn.com</host>
<item>america.news.cnn.com/fedd.xml</item>
</channel>

他们希望删除:

&lt;item&gt; http://asia.bbc.com/feed.xml &lt;/item&gt; 来自bbc.com &lt;channel&gt;

如何拉取文件并添加新的channel

现在正在尝试的是:

<?php

$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\" ?><user></user>");
$id= $xml->addChild('id');
$username = $xml->addChild('userName');
 for ($i = 1; $i <= 8; ++$i) {
    $channel= $xml->addChild('channel');
    $channel->addChild('host', 'www.bbc.com');
    $channel->addChild('item','http://asia.bbc.com/feed.xml'); 
} /**/

Header('Content-type: text/xml');
print($xml->asXML());
?>

这可行,但不会保存文件,并且会在瞬间将随机数量的 items 添加到随机数量的 channels 中。

编辑:还有一件事,当运行时,此代码会生成一个单行 XML 文件 难以 阅读并且**它不验证**。 验证者说:

对不起

此提要未通过验证。

line 2, column 0: Undefined root element: user [help]

    <user><id/><userName/><channel><host>www.bbc.com</host><item>http://asia.bbc

...

希望它可以产生多行作为上面的示例XML

有什么建议吗?

【问题讨论】:

  • 你试过DOMDocument吗?
  • @MuhammadKashifAbbasi 当然不会介意...关于如何实现类似目标的任何建议?...谢谢!
  • 试试这个$xml-&gt;asXML('path/filename.xml'); 并获得有关 DOMDocument 的帮助,请查看答案

标签: php xml


【解决方案1】:

只是为了节省你可以使用$xml-&gt;asXML('path/filename.xml');

您可以查看此帖子以获取一些帮助 Using SimpleXML and DOMDocument Together

【讨论】:

猜你喜欢
  • 2019-12-25
  • 2012-12-16
  • 1970-01-01
  • 1970-01-01
  • 2022-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多