2011-12-08 41 views
0

我有一個小的需求,我需要在運行中創建一個XML文件。這是沒有問題的,我要創造條件,尋找這樣一個正常的XML文件:使用PHP動態創建XML

<?xml version="1.0" encoding="UTF-8"?> 
<root> 
    <item> 
    <name></name> 
    </item> 
</root> 

但我的要求是這樣的,我需要創建的輸出是一個XML文件:

<?xml version="1.0" encoding="UTF-8"?> 
    <root> 
     <item> 
     <name url = "C:\htdocs\proj1\source_file1"/> 
     <name url = "C:\htdocs\proj1\source_file2"/> 
     <name url = "C:\htdocs\proj1\source_file3"/> 
     </item> 
    </root> 

我嘗試過這種方式:

<?php 
    $domtree = new DOMDocument('1.0', 'UTF-8'); 
    $domtree->formatOutput = true; 

    $xmlRoot = $domtree->createElement("root"); 
    $xmlRoot = $domtree->appendChild($xmlRoot); 

    $item = $domtree->createElement("item"); 
    $item = $xmlRoot->appendChild($item); 

    $name= $domtree->createElement("name"); 
    $name = $item->appendChild($name); 

    $sav_xml = $domtree->saveXML(); 
    $handle = fopen("new.xml", "w"); 
    fwrite($handle, $sav_xml); 
    fclose($handle);  
?> 

但我想追加/添加url =「path」到我的元素。我曾嘗試聲明與url和路徑的變量,但這會引發錯誤,如:

Uncaught exception 'DOMException' with message 'Invalid Character Error' 

任何想法如何解決這個問題!

感謝

+0

您的代碼犯規表演,你試圖設置屬性。無論如何,如何在XML中設置屬性是重複的。以http://pastebin.com/U2rNuZQP爲例。 – Gordon

+0

[如何爲XML中的屬性創建和設置值?](http://stackoverflow.com/questions/6226702/how-to-create-and-set-values-for-attribute-in-xml) – Gordon

回答

3

你只需要申報通過PHP DOM是屬性:

... 
$name= $domtree->createElement("name"); 

$urlAttribute = $domtree->createAttribute('url'); 
$urlAttribute->value = 'C:\htdocs\proj1\source_file1'; 
$name->appendChild($urlAttribute); 

$item->appendChild($name); 
... 

Link to DOMDocument docs

+0

感謝很多palmic,它的工作原理 – 125369