2012-02-11 111 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