[英]PHP - Convert XML to CSV using fputcsv
如何使用fputcsv
將以下 XML 轉換為 CSV
<?xml version="1.0" encoding="utf-8"?>
<PRODUCTINFORMATION>
<SUPPLIER>Company</SUPPLIER>
<PRODUCTS>
<PRODUCT>
<PRODUCT_NUMBER>AR1249-16</PRODUCT_NUMBER>
<PRODUCT_BASE_NUMBER>AR1249</PRODUCT_BASE_NUMBER>
<PRODUCT_ID>10134325</PRODUCT_ID>
</PRODUCT>
<PRODUCT>
<PRODUCT_NUMBER>AR1253-16</PRODUCT_NUMBER>
<PRODUCT_BASE_NUMBER>AR1253</PRODUCT_BASE_NUMBER>
<PRODUCT_ID>10134300</PRODUCT_ID>
</PRODUCT>
<PRODUCT>
<PRODUCT_NUMBER>AR1424-03</PRODUCT_NUMBER>
<PRODUCT_BASE_NUMBER>AR1424</PRODUCT_BASE_NUMBER>
<PRODUCT_ID>10147594</PRODUCT_ID>
</PRODUCT>
</PRODUCTS>
</PRODUCTINFORMATION>
我的 PHP 是:
<?php
$xml = simplexml_load_file('prodinfo.xml');
$csv = fopen('prodinfo.csv', 'w');
foreach($xml->PRODUCTS->PRODUCT as $element) {
foreach($element->PRODUCT_NUMBER as $productNumber){
foreach($element->PRODUCT_BASE_NUMBER as $productBaseNumber){
echo $productNumber ,";", $productBaseNumber. '<BR>' ;
//fputcsv($csv, get_object_vars($productNumber),',','"');
//fclose($csv);
}
}
}
?>
您不需要這么多foreach()
循環來獲取每個產品。 從每個項目構建數組也更容易,因為它是固定的,只有幾個字段......
$csv = fopen('prodinfo.csv', 'w');
fputcsv($csv, ["PRODUCT_NUMBER","PRODUCT_BASE_NUMBER","PRODUCT_ID"]
,',','"');
foreach($xml->PRODUCTS->PRODUCT as $element) {
fputcsv($csv, [(string)$element->PRODUCT_NUMBER,
(string)$element->PRODUCT_BASE_NUMBER,
(string)$element->PRODUCT_ID
],',','"');
}
fclose($csv);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.