我有一个 php 脚本,它读取一个 xml 文件并循环遍历这些值并将它们分配给我以后用来制作 csv 文件的变量。
在某种程度上它工作得很好。xml 中的一项是选项,我遇到的问题是有很多不同的选项类型。我在下面放了一个我正在使用的代码示例,当我知道选项是什么时它可以正常工作,但不幸的是,有时选项有不同的拼写或者是新选项,所以我需要先阅读选项然后编写它们和他们的值到一个变量。
这就是我一直在做的事情,并以阅读 Size 选项的示例为例。
$xml = simplexml_load_file($xml_url);
foreach($xml->item as $_item){
//Get The Item SKU
$sku = $_item->sku;
//Loop through the sizes and assign them to $size[$i]
$i=0;
foreach($_item->options->Size as $_size){
$size[$i++] = $_size;
}
$fopt = fopen('options.csv', 'a');
if (isset($size)) {
foreach($size as $s){
$thisline = $sku . '`Size:Select`' . $s . '`12' . "\n";
fwrite($fopt, $thisline);
}
unset($size);
}
}
上面代码中的 $thisline 变量是 csv 需要的布局,除了当每个项目有多个选项时,第二个字段看起来像 ' Size:Select,Color:Select
'
所以我需要做的是遍历选项,如果有的话,找出它们是什么,并将它们和它们的$thisline
值一起写入变量。
下面是xml文件的布局示例
<?xml version="1.0">
<root>
<item>
<sku>63344</sku>
<weight>0.0100</weight>
<Price>29.99</Price>
<url>http://www.clothing.com</url>
<name>Mens Jacket</name>
<category>
<parent_id>123</parent_id>
<parent_name>Clothes</parent_name>
<category_id>234</category_id>
<category_name>Jackets</category_name>
</category>
<media>
<image>jpg1</image>
<image>jpg2</image>
</media>
<options>
<Size>32</Size>
<Size>34</Size>
<Size>36</Size>
<Size>38</Size>
<Color>Red</Color>
<Color>Blue</Color>
</options>
<short_description>Short description here</short_description>
<description>Longer Description Here</description>
</item>
<item>
<sku>62211</sku>
<weight>0.0100</weight>
<Price>39.99</Price>
<url>http://www.clothing.com</url>
<name>Mens Trousers</name>
<category>
<parent_id>123</parent_id>
<parent_name>Clothes</parent_name>
<category_id>234</category_id>
<category_name>Trousers</category_name>
</category>
<media>
<image>jpg5</image>
<image>jpg7</image>
</media>
<options>
<Trouser_Size>28</Trouser_Size>
<Trouser_Size>30</Trouser_Size>
<Trouser_Size>32</Trouser_Size>
<Color>Red</Color>
<Color>Blue</Color>
</options>
<short_description>Short description here</short_description>
<description>Longer Description Here</description>
</item>
<item>
<sku>22111</sku>
<weight>0.0100</weight>
<Price>19.99</Price>
<url>http://www.clothing.com</url>
<name>Mens Shirt</name>
<category>
<parent_id>123</parent_id>
<parent_name>Clothes</parent_name>
<category_id>234</category_id>
<category_name>Shirts</category_name>
</category>
<media>
<image>jpg9</image>
<image>jpg44</image>
</media>
<options>
<Button_Color>Brown</Button_Color>
<Button_Color>Blue</Button_Color>
<Button_Color>Green</Button_Color>
</options>
<short_description>Short description here</short_description>
<description>Longer Description Here</description>
</item>
</root>