我真的需要一些帮助:我正在使用PHP脚本将XML转换为CSV,但我只需要在CSV中获得某些字段,而不是所有字段。有什么方法可以指定要导入的字段吗?
这是XML文件结构:
<PRICES>
<PRICE>
<WIC>HDE0AAFGRBOX</WIC>
<DESCRIPTION>some text here</DESCRIPTION>
<STOCK>100</STOCK>
<MY_PRICE>219.00</MY_PRICE>
<IMAGE>some image here</image>
<EAN-CODE>some code here</EAN-CODE>
</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);
}
?>
我只需要得到WIC,STOCK和MY_PRICE。
任何帮助都将不胜感激。
提前感谢!
您只需要创建一个具有这些属性的数组,并将其发送到fputcsv()
而不是get_object_vars()
:
$filexml='stock.xml';
if (file_exists($filexml)) {
$xml = simplexml_load_file($filexml);
$f = fopen('stock.csv', 'w');
foreach($xml->PRICES->PRICE as $price) {
// Array of just the components you need...
$values = array("WIC" => $price->WIC, "STOCK" => $price->STOCK, "MY_PRICE" => $price->MY_PRICE);
fputcsv($f, $values,',','"');
}
fclose($f);
}
注意:可能有必要将这些值强制转换为字符串。如果没有测试,我记不清了:
$values = array(
"WIC" => (string)$price->WIC,
"STOCK" => (string)$price->STOCK,
"MY_PRICE" => (string)$price->MY_PRICE
);