有沒有辦法使用PHP將XML文件轉換爲CSV?在PHP中將XML轉換爲CSV
3
A
回答
13
使用搜索引擎來查找代碼示例,如http://codestips.com/php-xml-to-csv/
要在PHP 5.0中的XML這是非常簡單的創建一個CSV文件,我們只需要編寫一些行。
我們將使用來自PHP 5.0的SimpleXML擴展。
SimpleXML將整個xml讀入一個對象,我們可以遍歷他的屬性。 要寫入csv輸出文件,我們將使用fputcsv。
fputcsv將行格式化爲csv並將其寫入文件。
假設我們有這個XML命名cars.xml:
<?xml version='1.0'?>
<cars>
<car>
<color>blue</color>
<price>2000</price>
</car>
<car>
<color>red</color>
<price>10000</price>
</car>
<car>
<color>black</color>
<price>5000</price>
</car>
</cars>
首先,我們應該使用使用simplexml_load_file傳遞文件的名稱閱讀我們的XML並返回該CSV的所有屬性和值的對象:
$xml = simplexml_load_file($filexml);
看完之後,我們應該通過汽車的所有子節點進行迭代,並使用fputcsv指定對象,分隔符和外殼將其寫入到輸出文件。我們應該對象首先轉換爲數組,以便將其寫入到CSV:
foreach ($xml->car as $car)
fputcsv($f, get_object_vars($car),',','"');
這裏是將XML轉換爲CSV在PHP 5.0的完整源代碼:
<?php
$filexml='cars.xml';
if (file_exists($filexml)) {
$xml = simplexml_load_file($filexml);
$f = fopen('cars.csv', 'w');
foreach ($xml->car as $car) {
fputcsv($f, get_object_vars($car),',','"');
}
fclose($f);
}
?>
-2
這裏是一個非常好的代碼示例。按我的要求正常工作。
<?php
$headers = array();
foreach ($xml->ROW->children() as $field) {
$headers[] = $field->getName();
}
$filename = ;
$csv_filename = str_replace('xml', 'csv', $filename);
$file = $this->getCsvDirectory() . '/' . $csv_filename;
if (file_exists($file)) {
unlink($file);
}
$csv = fopen($file, 'w');
fputcsv($csv, $headers, ',', '"');
foreach ($xml as $entry) {
$data = get_object_vars($entry);
$sanitized_data = array();
foreach ($data as $key => $datum) {
$sanitized_data[$key] = html_entity_decode($datum, ENT_COMPAT, 'UTF-8');
}
fputcsv($csv, $sanitized_data, ',', '"');
}
fclose($csv);
?>
相關問題
- 1. 使用PHP將XML轉換爲CSV
- 2. VBScript將XML轉換爲CSV
- 3. XLST將XML轉換爲CSV
- 4. 將csv轉換爲excel PHP
- 5. XML轉換爲CSV
- 6. 將XML字符串轉換爲CSV?
- 7. c#如何將csv轉換爲xml
- 8. 如何將這個XML轉換爲CSV
- 9. 將XML SOAP響應轉換爲CSV
- 10. 將csv/excel轉換爲xml的工具
- 11. 使用XSLT將XML轉換爲CSV
- 12. 將未知XML轉換爲CSV的XSLT
- 13. 使用XSLT將XML轉換爲CSV
- 14. 將XML轉換爲CSV - 詳細信息
- 15. Perl:將csv文件轉換爲xml
- 16. 使用Python將XML轉換爲CSV
- 17. 使用xsd將csv轉換爲xml
- 18. PowerShell的 - 將XML轉換爲CSV
- 19. 將CSV文件轉換爲XML
- 20. 將xml轉換爲csv in rails
- 21. 使用Javascript將XML轉換爲CSV
- 22. 將XML文件轉換爲CSV
- 23. 使用SAX將XML轉換爲CSV Python
- 24. .XML轉換爲.csv飼料
- 25. 使用XSLT將XML轉換爲XML php
- 26. 將excel轉換爲xml在php
- 27. 使用PHP將CSV文件轉換爲XML
- 28. PHP腳本將.CSV文件轉換爲.XML
- 29. 如何使用PHP腳本將CSV文件轉換爲XML?
- 30. PHP將CSV轉換爲XLS - phpExcel錯誤
你還可以發佈你的xml示例嗎? – YOU 2010-01-24 09:00:02
XML可以包含分層數據,而CSV僅包含表格數據。所以它真的取決於你的XML。 – 2010-01-24 09:14:39