2012-02-11 38 views
0

我真的需要一些問題的幫助:我使用PHP腳本將XML轉換爲CSV,但XML包含一些+符號,我不知道如何將它們從CSV。PHP - XML到CSV轉換問題

這是XML文件的結構:

<PRICES> 
<PRICE> 
<WIC>HDE0AAFGRBOX</WIC> 
<STOCK>100+</STOCK> 
<MY_PRICE>219.00</MY_PRICE> 
</PRICE> 
</PRICES> 

這是我使用的腳本:

<? 
$filexml='stock.xml'; 
if (file_exists($filexml)) { 
$xml = simplexml_load_file($filexml); 
$f = fopen('stock.csv', 'w') 
foreach($xml->PRICES->PRICE as $price) { 
fputcsv($f, get_object_vars($price),',','"'); 
} 
fclose($f); 
} 
?> 

該腳本工作正常,CSV文件是好的,但因爲我是小白與PHP我不知道如何刪除「+」標誌。

任何幫助將不勝感激。

在此先感謝!

+0

我想' 100+'是 100+? – 2012-02-11 13:01:37

+0

是的,抱歉的錯誤。 – alexius 2012-02-11 13:03:00

+0

你在'fopen'語句後缺少一個分號。 – 2012-02-11 13:07:32

回答

1

你可以嘗試修剪要刪除的字符(即 '+' 字符):

foreach($xml->PRICES->PRICE as $price) { 
    $price->STOCK = trim($price->STOCK, "+"); 
    fputcsv($f, get_object_vars($price),',','"'); 
} 
+1

如果Trim只在字符串的開頭或末尾,它將只刪除+符號,但這可能是這種情況。否則,請使用'$ price-> STOCK = str_replace(「+」,「」,$ price-> STOCK);' – Richard 2012-02-11 13:05:42

+0

非常感謝您的使用!祝你有美好的一天! – alexius 2012-02-11 13:06:53

0

嘗試使用str_replace函數:

$filexml='stock.xml'; 
if (file_exists($filexml)) { 
$xml = simplexml_load_file($filexml); 
$f = fopen('stock.csv', 'w') 
foreach($xml->PRICES->PRICE as $price) { 
$price->STOCK = str_replace("+","",$price->STOCK); 
fputcsv($f, get_object_vars($price),',','"'); 
} 
fclose($f); 
} 
+0

感謝您的幫助。 – alexius 2012-02-11 13:14:27