【发布时间】:2016-12-23 00:10:19
【问题描述】:
我使用 CSV 文件中的 fgetcsv 创建了一个多维数组。
同时使用 DOMDocument 和 SimpleXML 我正在尝试创建 CSV 文档的 XML 文件。
数组和 XML 变量被传递给同一个类文件中的函数。 XML 文档的创建没有任何问题,但没有值从数组传递到 XML。它确实有效,我使用静态值而不是从数组中传递值,如果我 print_r 数组,结构和值都是正确的。
在将值传递到 XML 之前,我已经尝试过 'htmlspecialcharacters' 和 'encode_UTF8'。
代码示例如下,product是多维数组。
public function array_to_xml($product, &$xml)
{
foreach($product as $row)
{
$element = $xml->createElement("Product");
$xml->appendChild($element);
$element = $xml->createElement("ID", ($row[38]));
$xml->appendChild($element);
}
}
问题显然出在数组上,但我找不到答案。任何帮助将不胜感激。
输出当前看起来像(ID 元素中没有值)。一旦它工作,产品将有大约 20 个子元素。
<?xml version="1.0"?>
<ProductList/>
<Product>
<ID/>
</Product>
</ProductList>
打印到屏幕时的 $row 示例:
Array ( [0] => [1] => [2] => 6/10/2016 [3] => [4] => [5] => 7.35 [6] => N [7] => N [8] => N [9] => 0 [10] => 0 [11] => 0 [12] => 0 [13] => 0 [14] => 80 [15] => 0 [16] => 80 [17] => 0 [18] => 80 [19] => N [20] => N [21] => N [22] => N [23] => 236.50 [24] => 0.00 [25] => 4.86 [26] => AFG Home Loans - Alpha [27] => 100% Offset Lo Doc Fixed [28] => 100% Offset Lo Doc 4 Year Fixed Owner Occupied [29] => 250.00 [30] => [31] => 7.35 [32] => 0.00 [33] => 4.9 [34] => N [35] => 325.00 [36] => 48 [37] => 4.52 [38] => 1-1MX78TF [39] => N [40] => [41] => [42] => N [43] => N [44] => [45] => Y [46] => 0.00 [47] => 10,000.00 [48] => 2,000,000.00 [49] => Y [50] => 30 [51] => [52] => [53] => Y [54] => 0.00 )
【问题讨论】:
-
您希望生成的 XML 是什么样的?您没有在
Product元素中添加任何内容。 -
你不需要使用
htmlspecialchars,库会在必要时为你进行编码。 -
你确定ID应该是一个单独的元素,而不是
Product的属性,比如<Product ID="100">?
标签: php xml csv multidimensional-array fgetcsv