Existe-t-il un moyen de convertir un fichier XML en un fichier CSV en utilisant PHP?Convertir XML en CSV en PHP
Répondre
Utilisez les moteurs de recherche pour localiser des exemples de code tels que http://codestips.com/php-xml-to-csv/
Pour créer un fichier csv à partir d'un xml en PHP 5.0, il est très simple, nous suffit d'écrire quelques lignes.
Nous allons utiliser l'extension SimpleXML qui vient de PHP 5.0.
SimpleXML lit un xml entier dans un objet que nous pouvons parcourir dans ses propriétés. Pour écrire dans le fichier de sortie csv, nous utiliserons fputcsv. Fputcsv formate une ligne en tant que csv et l'écrit dans le fichier
Supposons que nous avons ce xml nommé 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>
D'abord nous devrions lire notre xml en utilisant simplexml_load_file passer le nom du fichier et retourne un objet avec toutes les propriétés et les valeurs du csv:
$xml = simplexml_load_file($filexml);
Après avoir lu ce que nous devons parcourir tous les nœuds enfants de voitures et d'écrire dans le fichier de sortie en utilisant fputcsv spécifiant l'objet, le séparateur et enceinte. Nous devons tout d'abord convertir l'objet en un tableau pour écrire à la csv:
foreach ($xml->car as $car)
fputcsv($f, get_object_vars($car),',','"');
Voici le code source complet qui convertit XML csv en 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);
}
?>
Voici une très bon exemple de code. fonctionne bien avec ma demande.
<?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. Convertir un fichier XML volumineux en fichier CSV en PHP
- 2. Convertir XML en CSV en utilisant XSLT
- 3. Convertir xml en csv dans les rails
- 4. Convertir le fichier XML en CSV
- 5. Convertir JSON en CSV
- 6. convertir xml en html en utilisant php
- 7. Convertir DataTable en flux CSV
- 8. XML Convertir la structure CSV comme
- 9. Convertir le fichier .xls en XML en utilisant php
- 10. convertir le fichier texte en XML en utilisant PHP?
- 11. XML en CSV, obtenant seulement une ligne?
- 12. convertir php en ruby
- 13. convertir en XML
- 14. Convertir XML en .plist
- 15. convertir xml en table
- 16. Convertir XML en lignes
- 17. asp.net Convertir une chaîne CSV en chaîne []
- 18. Convertir une liste Python en colonne CSV
- 19. Transformation de XML en CSV - détails
- 20. comment convertir une table mysql en fichier texte en php?
- 21. Comment convertir un fichier texte en csv en utilisant AWK
- 22. Convertir un fichier CHM en CSV ou en SQL
- 23. Convertir le fichier .csv en .dbf en utilisant Python?
- 24. Date Convertir en php
- 25. Convertir xml en pdf en Python
- 26. convertir le fichier en Xml en android
- 27. Convertir xml en xsd en utilisant java
- 28. Convertir XML en texte brut
- 29. Convertir Doxygen en commentaires XML
- 30. Comment convertir xml en sqlite
pouvez-vous également poster votre échantillon xml? – YOU
XML peut contenir des données hiérarchiques, alors que CSV ne contient que des données tabulaires. Cela dépend donc vraiment de votre XML. –