有没有办法使用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