我正在使用 appJar(python 库,使用 Tkinter)制作 GUI。我有一个 XML 文件。 我正在使用 ElementTree XML 解析库解析 XML 文件。
我想在 TreeView 中查看我的 XML 文件。 所以我正在使用 Element Tree 解析文件,获取需要在 Treeview 中显示的标签并形成一个新的 XML 对象。并在 appJar 函数中传递新对象:.addTree()。 但我得到的错误是:
..lib\site-packages\appJar\appjar.py", line 8764, in addTree
xmlDoc = parseString(data).
...lib\xml\dom\expatbuilder.py", line 223, in parseString
parser.Parse(string, True)
TypeError: a bytes-like object is required, not 'ElementTree'
xml=et.Element(root)
print(xml)
for ele in valList:
reg=et.SubElement(xml, ele.find('Name').text)
bitroot= ele.findall('Bit')
for bit in bitroot:
et.SubElement(reg, bit.find('Name').text)
xmltree= et.ElementTree(xml)
app.startFrame('bottomleft',1,0,2)
app.setBg('orange')
app.setSticky('news')
app.setStretch('none')
app.addTree('REGISTER', xmltree)
I am getting the error, as far as I can understand is because .addTree() API is unable to read the format of xmltree variable.
最佳答案
根据 appJar documentation ,您需要将 XML 字符串传递给 .addTree()
,而不是 ElementTree
。根据ElementTree documentation ,您可以使用 xml.etree.ElementTree.tostring()
从您的 Element
构建 XML 字符串:
xml_string = et.tostring(xml)
app.addTree('REGISTER', xml_string)
关于python - 使用 appJar 在 TreeView 中查看 XML 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50446859/