Как сохранить дом с помощью XML - PullRequest
0 голосов
/ 16 ноября 2009

Я сохраняю свой XML-файл DOM с помощью

`<?php
if(isset($_POST["song"])&& $_POST['song'] != "") 
    {
        $song = $_POST["song"];
    }
    else {$song=array();} 

$dom = new DOMDocument("1.0");
// display document in browser as plain text 
// for readability purposes

// create root element
$root = $dom->createElement("playlist");
$dom->appendChild($root);
$root->setAttribute('version', "1");
$root->setAttribute('xmlns', "http://xspf.org/ns/0/");
$rootnext = $dom->createElement("trackList");
$root->appendChild($rootnext);
foreach ($song as $counter) {
    $tokens = ",";
    $tokenized = strtok($counter, $tokens);
// create child element

$song = $dom->createElement("track");
$rootnext->appendChild($song);
$song1 = $dom->createElement("creator");
$song->appendChild($song1);
$text = $dom->createTextNode("www.indiantags.com");
$song1->appendChild($text); 
$song1 = $dom->createElement("title");
$song->appendChild($song1);
// create text node
$text = $dom->createTextNode($tokenized);
$song1->appendChild($text); 
$tokenized = strtok($tokens);
$song1 = $dom->createElement("location");
$song->appendChild($song1);
$text = $dom->createTextNode($tokenized);
$song1->appendChild($text); 

}

// save 
$dom->save("playlist.xml");

?>
<object data="42-mp3player.swf?autostart=true&playlist=playlist.xml" type="application/x-shockwave-flash" width="400" height="300"><param name="movie" value="42-mp3player.swf?autostart=true&playlist=playlist.xml"/></object>

`

Но все, что мне нужно, это то, что я хочу сохранить этот файл playlist.xml с динамическим именем, что-то с функцией microtime или сессионное имя ... любое тело хотело бы пролить свет на это?

Спасибо

Ответы [ 2 ]

0 голосов
/ 25 ноября 2009

Чтобы сохранить с динамическим именем, вы можете сделать что-то вроде этого в PHP:

//Set dynamic name - used microtime in this example but you could change this
//to another dynamic naming scheme
$dynamicPlaylistName = microtime();

//Save XML with dynamic name
$dom->save($dynamicPlaylistName.'.xml');

Приведенный выше код устанавливает dynamicPlaylistName на то, что вы ставите после знака равенства в этой строке, а затем сохраняет xml со значением dynamicPlaylistName в качестве имени файла с добавлением «.xml».

Если вы также хотите, чтобы файл XML был отформатирован с отступами и вложением, см. Мой ответ на этот вопрос . Обратите внимание, что вам, скорее всего, нужно только добавить следующие две строки где-то перед сохранением XML, чтобы получить форматирование в вашем случае:

$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
0 голосов
/ 16 ноября 2009

Интерфейс IXMLDOMDocument2 имеет метод сохранения. Проверьте это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...