我需要通过列(;)将此xml结构解析为csv分隔数据但是它不起作用,只需创建没有数据的标题
----<ArticuloD>
<codigo>10202</codigo>
<familia>VARIOS</familia>
<subfamilia>LIBROS</subfamilia>
<subfamilia2>LIBROS</subfamilia2>
<subfamilia3>LIBROS</subfamilia3>
<subfamilia4>LIBROS</subfamilia4>
<ean>9788425351501</ean><talla>ST</talla>
----</ArticuloD>
---<ArticuloD>
&#13;
我的PHP代码:
<?php
$file='ListaArticulosD-507.xml';
if (file_exists($file)) {
$xml = simplexml_load_file($file);
$f = fopen('user.csv', 'w');
// array to hold the field names
$headers = array();
// loop through the first set of fields to get names
foreach ($xml->ArticulosD->ArticuloD->children() as $field) {
// put the field name into array
$headers[] = $field->getName();
}
// print headers to CSV
fputcsv($f, $headers, ';', '"');
foreach ($xml->ArticuloD->children() as $users) {
fputcsv($f, get_object_vars($users), ';', '"');
}
fclose($f);
}
?>
&#13;
答案 0 :(得分:1)
如果您将其更改为...,那么您的上一个foreach
循环太深入到结构中了。
foreach ($xml->ArticuloD as $users) {
然后我得到的输出是
codigo;familia;subfamilia;subfamilia2;subfamilia3;subfamilia4;ean;talla
10202;VARIOS;LIBROS;LIBROS;LIBROS;LIBROS;9788425351501;ST
有时候使用print_r()
来获取这样的数据时,可以提示您在每个点上使用的内容。只需记住在发送任何代码之前将它们取出来!