Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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 使用minidom和xml2xlsx从xml转换为xlsl不起作用_Python_Xml_File_Minidom - Fatal编程技术网

Python 使用minidom和xml2xlsx从xml转换为xlsl不起作用

Python 使用minidom和xml2xlsx从xml转换为xlsl不起作用,python,xml,file,minidom,Python,Xml,File,Minidom,我试图用Python将多个XML文件转换为xlsl,我发现了一个名为xml2xlsx的库,它可以帮助我做到这一点!我的想法是使用minidom库打开XML文件,将其保存在变量中,然后将其写入xlsx文件。到目前为止,我已经编写了以下代码: from xml2xlsx import xml2xlsx from xml.dom import minidom template = open('file.xml','r') xmldoc = minidom.parse(template) templat

我试图用Python将多个XML文件转换为xlsl,我发现了一个名为xml2xlsx的库,它可以帮助我做到这一点!我的想法是使用minidom库打开XML文件,将其保存在变量中,然后将其写入xlsx文件。到目前为止,我已经编写了以下代码:

from xml2xlsx import xml2xlsx
from xml.dom import minidom
template = open('file.xml','r')
xmldoc = minidom.parse(template)
template.close()

f = open('test.xlsx', 'wb')
f.write(xml2xlsx(template))
f.close()
问题是,在运行它时,我会收到一个错误提示:

PS C:\Users\andri\PythonProjects\mypyth> py toexcel.py
Traceback (most recent call last):
  File "toexcel.py", line 8, in <module>
    f.write(xml2xlsx(template))
  File "C:\Users\andri\AppData\Local\Programs\Python\Python37-32\lib\site-packages\xml2xlsx\__init__.py", line 237, in xml2xlsx
    return etree.XML(xml, parser, )
  File "src\lxml\etree.pyx", line 3201, in lxml.etree.XML
  File "src\lxml\parser.pxi", line 1876, in lxml.etree._parseMemoryDocument
ValueError: can only parse strings
PS C:\Users\andri\PythonProjects\mypyth>py-toexcel.py
回溯(最近一次呼叫最后一次):
文件“toexcel.py”,第8行,在
f、 写入(xml2xlsx(模板))
文件“C:\Users\andri\AppData\Local\Programs\Python\Python37-32\lib\site packages\xml2xlsx\uuuuuu init\uuuuuuuuuu.py”,第237行,在xml2xlsx中
返回etree.XML(XML,解析器)
lxml.etree.XML中的文件“src\lxml\etree.pyx”,第3201行
文件“src\lxml\parser.pxi”,第1876行,在lxml.etree.\u parseMemoryDocument
ValueError:只能分析字符串

我知道xml2xlsx writer可能只能写字符串(我不确定它是否正确),但我不知道如何修复它。谁能帮帮我吗?非常感谢您提供的任何帮助

看起来您可能一直在尝试以下示例:

从xml2xlsx导入xml2xlsx
模板=“”
f=打开('test.xlsx','wb')
f、 写入(xml2xlsx(模板))
f、 关闭()
如您所见,
模板
在这里是一个
str
。而在您的示例中,
模板
是一个

您可以通过以下方式将其转换回xml字符串:

从xml2xlsx导入xml2xlsx
从xml.dom导入minidom
打开('file.xml')作为xml\u文件:
template=minidom.parse(xml_文件)
将open('test.xlsx','wb')作为xlsx\u文件:
xlsx_file.write(xml2xlsx(template.to_xml()))
或者干脆跳过
minidom
步骤:

从xml2xlsx导入xml2xlsx
打开('file.xml')作为xml\u文件:
template=xml_file.read()
将open('test.xlsx','wb')作为xlsx\u文件:
xlsx_file.write(xml2xlsx(模板))

看起来您可能一直在尝试以下示例:

从xml2xlsx导入xml2xlsx
模板=“”
f=打开('test.xlsx','wb')
f、 写入(xml2xlsx(模板))
f、 关闭()
如您所见,
模板
在这里是一个
str
。而在您的示例中,
模板
是一个

您可以通过以下方式将其转换回xml字符串:

从xml2xlsx导入xml2xlsx
从xml.dom导入minidom
打开('file.xml')作为xml\u文件:
template=minidom.parse(xml_文件)
将open('test.xlsx','wb')作为xlsx\u文件:
xlsx_file.write(xml2xlsx(template.to_xml()))
或者干脆跳过
minidom
步骤:

从xml2xlsx导入xml2xlsx
打开('file.xml')作为xml\u文件:
template=xml_file.read()
将open('test.xlsx','wb')作为xlsx\u文件:
xlsx_file.write(xml2xlsx(模板))