2013-03-03 53 views
1

即時通訊從PHP的形式使用PHP寫一個XML,我不能移動因爲這個問題..謝謝你的幫助!Php未定義的索引寫入xml文件

<?php 
    $root = array(); 
$root [] = array( 
'subtitle' => $_POST['subtitle'], 
); 
echo $_POST['subtitle'];//checker if POST really passes data 

$doc = new DOMDocument(); 
$doc->formatOutput = true; 

$r = $doc->createElement("root"); 
$doc->appendChild($r); 

$subtitle = $doc->createElement("subtitle"); 
$subtitle->appendChild($doc->createTextNode($root['subtitle'])); --Undefined index- 
$r->appendChild($subtitle); 

$ root ['subtitle']是未定義的,我不知道爲什麼。

echo $doc->saveXML(); 
$doc->save(.$_POST['title'].".xml") 
?> 

代碼的功能生成xml文件,但該節點是空

<?xml version="1.0"?> 
<root> 
    <subtitle></subtitle> 
</root> 

謝謝!

寫了print_r($ root)並在表單中寫了qwerty。這是輸出 Array([0] => Array([subtitle] => qwerty))

+0

你能把錯誤信息複製給我們嗎? – christopher 2013-03-03 16:32:05

+0

嘗試執行print_r($ root)來查看數組中包含的內容。 – Anonymous 2013-03-03 16:32:20

+0

注意:未定義的索引:... \ testcode.php中的副標題@ChrisCooney – user2128593 2013-03-03 16:37:36

回答

2

你在做$root [] = array(...)。因此,它會在$root陣列的索引上創建另一個陣列。

嘗試做:

$subtitle->appendChild($doc->createTextNode($root[0]['subtitle'])); 

或初始化$root陣列時要取出支架。

+0

或者只是從'$ root = array(...)'聲明中刪除[]: – christopher 2013-03-03 16:40:09

+0

是的,我只是把它添加到我的回答;) – 2013-03-03 16:41:17

+0

完美!我被這個問題困住了幾個小時,甚至嘗試重建我的xml模板。大聲笑。嚇壞了括號。謝謝! – user2128593 2013-03-03 16:48:34