python - 使用来自另一个文件的数据创建 xml 文件的问题
问题描述
我努力将数据从一个 xml 导出到第二个 xml,但脚本没有抛出任何错误,但什么也没发生。
我不知道现在该怎么办。。
XML 文件的链接在这里:http ://shop.dinotoys.cz/content/files/feeds/My_Product_Feed.xml
import xml.etree.ElementTree as ET
tree = ET.parse('/home/martin/Plocha/My_Product_Feed.xml')
root = tree.getroot()
polozky = root[1]
data = ET.Element('hracky')
element1 = ET.SubElement(data, 'categories')
element2 = ET.SubElement(data, 'products')
s_elem1 = ET.SubElement(element1, 'category')
s_elem2 = ET.SubElement(element2, 'product')
category = "Dino"
s_elem1.text = category
for p in polozky.findall('Product'):
s_elem2 = ET.SubElement(element2, 'product')
img = p.find('MediumImage4').text
name = p.find('DefaultTitle').text
status = p.find('IsOrderable').text
if status == 'True':
status = "SKLADEM"
else:
status = "NENÍ SKLADEM"
ean = p.find('EAN').text
try:
description = p.find('Description_1029').text
except AttributeError:
description = ""
continue
try:
category = p.find('Item_Category_Code_Description').text
except AttributeError:
category = ""
continue
sku = p.find('Id').text
sku_full = "D" + sku
s_elem2_1 = ET.SubElement(s_elem2, 'name')
s_elem2_2 = ET.SubElement(s_elem2, 'sku')
s_elem2_3 = ET.SubElement(s_elem2, 'imgurl')
s_elem2_4 = ET.SubElement(s_elem2, 'status')
s_elem2_5 = ET.SubElement(s_elem2, 'ean')
s_elem2_6 = ET.SubElement(s_elem2, 'description')
s_elem2_7 = ET.SubElement(s_elem2, 'category')
s_elem2_1.text = name
s_elem2_2.text = sku_full
s_elem2_3.text = img
s_elem2_4.text = status
s_elem2_5.text = ean
s_elem2_6.text = description
s_elem2_7.text = category
xml_content = ET.tostring(data)
with open('dinoxfeed.xml', 'wb') as f:
f.write(xml_content)
f.close()
任何人都可以帮助我吗?
解决方案
在第 9 行,您尝试获取名为“hracky”的元素,但 XML 文件中没有这样的元素。所以数据将是一个空节点。此外,您循环浏览各种产品并进行处理,但您不会触及数据变量。然后,您只导出不包含任何内容的数据变量。
另一件事是您将每个产品的结果写入同一个文件,这意味着您每次都覆盖它,即使其余代码有效,您也只会在文件中拥有最后一个产品。
推荐阅读
- javascript - 需要讨论下一个 JS 浅选项的动态路由
- javascript - 使用 combineReducer 组合我的减速器后,动作未调度
- pypubsub - Laravel 框架发布订阅
- firebase - Flutter & Firebase:返回集合列表
- mysql - 如何获取外键列表以及该外键上的索引名称?
- python - 打开python文件进行读取时如何使用变量和字符串?
- mongodb - Splunk MongoDB 插件:我们是否需要 root 权限来监控 MongoDB 数据?
- heroku - 如何解决 Heroku 问题?我无法部署
- c# - 获取[当前执行的线程不在步骤定义上下文中]错误
- flutter - 为什么为每日日程安排本地通知无法正常工作?