【问题标题】:How to save dom with xml如何用xml保存dom
【发布时间】:2009-11-16 07:32:28
【问题描述】:

我正在使用

保存我的 dom xml 文件
`<?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 函数或 sessionid 名称保存一些东西......任何机构都想对它有所了解吗?

谢谢

【问题讨论】:

    标签: php xml dom


    【解决方案1】:

    IXMLDOMDocument2 接口有一个保存方法。检查this

    【讨论】:

    • 我猜,sai 使用 PHP。所以 IXMLDOMDocument2 可能不起作用。
    • 我正在使用 php ...这在 php 中不起作用 ...任何人都可以提供帮助
    • 嗨pavan,我已经添加了我的代码......我只需要在运行时获取文件的动态名称而不是playlist.xml ....我是xml的新手从几个标签我对xml不太了解...感谢您的帮助...谢谢
    【解决方案2】:

    要使用动态名称保存,您可以在 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 设置为您在该行等号之后放置的任何内容,然后将带有 dynamicPlaylistName 值的 xml 保存为其文件名,并附加了“.xml”。

    如果您还希望 XML 文件使用缩进和嵌套进行格式化,请参阅我对 this question 的回答。请注意,您可能只需要在保存 XML 之前在某处添加以下两行以获取您的情况的格式:

    $dom->preserveWhiteSpace = false;
    $dom->formatOutput = true;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-09-21
      • 1970-01-01
      • 2016-05-21
      • 2014-12-16
      • 1970-01-01
      • 2012-10-30
      • 1970-01-01
      相关资源
      最近更新 更多