为什么ElementTree无法解析XML文件的副本

时间:2019-05-09 13:30:08

标签: xml python-3.x

由于某些原因,我必须替换XML文件中的德国变音符号。 为此,我编写了这段小代码。 我知道最好避免使用元音变音并在XML中使用正确的UTF8编码,但是我必须处理它...

我在解析复制的XML时总是出错,因此我使用了可以解析的XML,而无需替换https://www.datacamp.com/community/tutorials/python-xml-elementtree中的变音符号。

此XML有效(因此,它似乎是有效的XML),但是即使没有替代品,我也无法解析复制的XML。 我使用xdiff查找两个文件之间的任何区别,但似乎两个文件是相同的。 有人可以告诉我这是怎么回事吗?我认为这与编码有关,但是我不太确定...

import os
import ansa
import xml.etree.ElementTree as ET
def main():

    File ='source.xml'
    Copy ='source_cpy.xml'
    Out = open(Copy,'w',encoding = 'UTF-8')
    with open(File,'r',encoding ='ISO-8859-1') as Input:
        for Line in Input:
            print (Line)
            Newline = Line#.replace(u'ä','ae').replace(u'ü','ue').replace(u'ö','oe')
            Out.write(Newline)
    tree = ET.parse(File)
    print (tree)
    tree = ET.parse(Copy)
    print (tree)

结果是:

回溯(最近通话最近一次):

文件

中的文件“ /home/xmlparsertest.py(从脚本编辑器运行)”,第21行

文件“ /home/xmlparsertest.py(从脚本编辑器运行)”,主行第17行

文件“ /python/linux64/lib/python3.3/xml/etree/ElementTree.py”,第1242行,已解析     tree.parse(来源,解析器)

文件“ /python/linux64/lib/python3.3/xml/etree/ElementTree.py”,第1730行,已解析     self._root = parser._parse(源)

xml.etree.ElementTree.ParseError:找不到元素:第1行,第0列

我想拥有一个解决方案,即我复制的XML是有效的XML

0 个答案:

没有答案