Я хочу, чтобы основной XML
созданный в PHP, и файл может быть сохранен в директории и редактироваться ...Как создать базовый файл XML в PHP
Это структура:
<?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>
Я пробовал так много подходов с тех пор, как через несколько часов и до сих пор не могу найти оптимальный подход для достижения этого.
Задача состоит в том как сохранить файл и называют его, когда пользователь думает о добавления или удаленияitem
или channel
образуют файл XML
.
Допустим, они хотят добавить:
<channel>
<host>www.cnn.com</host>
<item>america.news.cnn.com/fedd.xml</item>
</channel>
и они хотят, чтобы удалить:
<item> http://asia.bbc.com/feed.xml </item>
из bbc.com
<channel>
Как вытащить файл и добавить новый 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
мгновенных.
EDIT: Еще одна вещь, когда побежал, этот код создает ОДНОЛИНЕЙНАЯ 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] (http://php.net/manual/en/domdocument.save.php)? – Abbasi
@MuhammadKashifAbbasi Конечно, не против ... Любое предложение о том, как достичь чего-то подобного ... Спасибо! –
попробуйте этот '$ xml-> asXML ('путь/filename.xml');' и за помощью с DOMDocument посмотрите на ответ – Abbasi