2009-08-01 55 views
0

我試圖處理導入XML文件,使文本中的節點變化情況

<Name>SOMETHINGTOMAKELOWERCASE</Name> 

小寫的一個

<Name>somethingtomakelowercase</Name> 

到目前爲止我得到了:

$xml = file_get_contents($xmlfile); 
$xml = preg_replace('/<Name>(.*)<\/Name>/e', '<Name>' . strtolower($1) . '</Name>',$xml); 
fwrite(fopen($xmlfile, 'wb'), $xml); 

我已經嘗試了約10個不同版本的正則表達式,但沒有一個會工作。你能否指出我正確的方向,正確的正則表達式?

回答

2

嘗試此代替:

$xml = file_get_contents($xmlfile); 
$xml = preg_replace('/<Name>(.*)<\/Name>/e', "'<Name>' . strtolower('\\1') . '</Name>'",$xml); 
fwrite(fopen($xmlfile, 'wb'), $xml); 

當preg_replace函數使用/ e改性劑,你必須通過的代碼串進行評估作爲替換參數,而不是一個已經評估表達。

+0

+1:太棒了,我不知道! – Josh 2009-08-02 04:43:10