2012-02-11 10 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ファイルには良いですが、私はnoobのだからPHPで "+"記号を削除する方法がわかりません。

ご協力いただきますようお願い申し上げます。

ありがとうございます!

+0

私は '' 100+を想定 100+? –

+0

はい、間違って申し訳ありません。 – alexius

+0

'fopen'文の後ろにセミコロンがありません。 –

答えて

1

あなたが削除したい文字( '+' 文字)をトリミングしようとすることができます:

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

トリムでは、+記号が文字列の先頭または末尾にある場合にのみ削除されますが、これはおそらくそうです。それ以外の場合は '$ price-> STOCK = str_replace(" + "、" $ price-> STOCK); ' – Richard

+0

ありがとうございます。すてきな一日を! – alexius

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