我有以下XML文件需要转换为CSV才能进行Magento导入。下
<values> <Value AttributeID="attributes"></Value>
每种产品都有几百种不同的可能性。
我尝试通过命令行使用xml2csv
和xmlutils.xml2csv
但没有运气。任何帮助,将不胜感激。
<?xml version="1.0" encoding="UTF-8" ?>
<STEP-ProductInformation>
<Products>
<Product UserTypeID="Item" ParentID="12345678" AnalyzerResult="included" ID="123456">
<Name>X8MM</Name>
<ClassificationReference InheritedFrom="" ClassificationID="" AnalyzerResult=""/>
<Values>
<Value AttributeID="Retail Price">46.44</Value>
<Value AttributeID="Item Class">03017</Value>
<Value AttributeID="Item Group">03</Value>
<Value AttributeID="Consumer Description">Super-X 8mm Mauser (8x57) 170 Grain Power-Point</Value>
<Value AttributeID="Quantity Case">10</Value>
<Value AttributeID="Bullet Weight">170 gr.</Value>
<Value AttributeID="Made In The USA">Made In The USA</Value>
<Value AttributeID="Item Code">X8MM</Value>
<Value AttributeID="Caliber">8x57 Mauser</Value>
<Value AttributeID="Catalog Vendor Name">WINCHESTER</Value>
<Value AttributeID="Quantity per Box">20</Value>
<Value AttributeID="Item Status">OPEN</Value>
<Value AttributeID="Wildcat Eligible">Y</Value>
<Value AttributeID="Item Description">WIN SUPX 8MAU 170 PP 20</Value>
<Value AttributeID="Primary Vendor">307AM</Value>
<Value AttributeID="Caliber-Gauge">8X57 MAUSER</Value>
<Value AttributeID="InventoryTyp">REG</Value>
<Value AttributeID="Bullet Style">Power-Point</Value>
<Value AttributeID="ProductPageNumber"/>
<Value AttributeID="Model Header">8mm Mauser (8x57)</Value>
<Value AttributeID="Master Model Body Copy">Power Point assures quick and massive knock-down. Strategic notching provides consistent and reliable expansion. Contoured jacket maximum expansion performance. Alloyed lead core increases retained weight for deeper penetration.</Value>
<Value AttributeID="Master Model Header">Super-X Power-Point</Value>
<Value AttributeID="Vendor Group">WIN</Value>
</Values>
<AssetCrossReference Type="Primary Image" AssetID="WIN_X8MM" AnalyzerResult="included"/>
</Product>
</Products>
</STEP-ProductInformation>
答案 0 :(得分:1)
我不熟悉“Magento”,但此程序会将您的XML文件转换为CSV文件。生成的CSV文件包含一列Name
和一列Value
。
from xml.etree import ElementTree as ET
import csv
tree = ET.parse('x.xml')
root = tree.getroot()
columns = ['Name'] + [
value.attrib.get('AttributeID').encode('utf-8')
for value in tree.findall('.//Product//Value')]
with open('x.csv', 'w') as ofile:
ofile = csv.DictWriter(ofile, set(columns))
ofile.writeheader()
for product in tree.findall('.//Product'):
d = {value.attrib.get('AttributeID').encode('utf-8'):
(value.text or '').encode('utf-8')
for value in product.findall('.//Values/Value')}
d['Name'] = product.findtext('Name')
ofile.writerow(d)