Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 使用其他文件中的数据创建xml文件时出现问题_Python_Python 3.x_Xml_Xml Parsing_Xml.etree - Fatal编程技术网

Python 使用其他文件中的数据创建xml文件时出现问题

Python 使用其他文件中的数据创建xml文件时出现问题,python,python-3.x,xml,xml-parsing,xml.etree,Python,Python 3.x,Xml,Xml Parsing,Xml.etree,我正在努力将数据从一个xml导出到第二个xml,但脚本没有抛出任何错误,但什么也没有发生 我不知道现在该怎么办 指向XML文件的链接位于此处: 有人能帮我吗?在第9行,您尝试获取名为“hracky”的元素,但XML文件中没有这样的元素。因此,数据将是一个空节点。此外,您可以循环各种产品并进行处理,但不涉及数据变量。然后只导出不包含任何内容的数据变量 另一件事是,您将每个产品的结果写入同一个文件,这意味着您每次都会覆盖它,即使其余代码正常工作,您也只会拥有文件中的最后一个产品。这没有任何帮助;但是

我正在努力将数据从一个xml导出到第二个xml,但脚本没有抛出任何错误,但什么也没有发生

我不知道现在该怎么办

指向XML文件的链接位于此处:


有人能帮我吗?

在第9行,您尝试获取名为“hracky”的元素,但XML文件中没有这样的元素。因此,数据将是一个空节点。此外,您可以循环各种产品并进行处理,但不涉及数据变量。然后只导出不包含任何内容的数据变量


另一件事是,您将每个产品的结果写入同一个文件,这意味着您每次都会覆盖它,即使其余代码正常工作,您也只会拥有文件中的最后一个产品。

这没有任何帮助;但是只要一点提示,在文件末尾,您不需要使用
f.close()
。请解释您得到的当前输出和预期输出。@balderman。。。预期输出是新的xml文件,其中包含从指定列中的第一个xml文件提取的值。当前输出不是零。。没有文件,文件中没有输出。@TryingMyBest您是否在脚本中添加了几行
print
以查看错误?是的,我也尝试了,但仍然没有发生任何事情。。我不明白这一点,因为我的另一个脚本基于相同的代码,可以工作。。
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()